[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Products/views/ -> Detail.php (source)

   1  <?php
   2  
   3  /* +***********************************************************************************
   4   * The contents of this file are subject to the vtiger CRM Public License Version 1.0
   5   * ("License"); You may not use this file except in compliance with the License
   6   * The Original Code is:  vtiger CRM Open Source
   7   * The Initial Developer of the Original Code is vtiger.
   8   * Portions created by vtiger are Copyright (C) vtiger.
   9   * All Rights Reserved.
  10   * *********************************************************************************** */
  11  
  12  class Products_Detail_View extends Vtiger_Detail_View {
  13  
  14  	public function showModuleDetailView(Vtiger_Request $request) {
  15          $recordId = $request->get('record');
  16          $moduleName = $request->getModule();
  17  
  18          $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
  19          $baseCurrenctDetails = $recordModel->getBaseCurrencyDetails();
  20          
  21          $viewer = $this->getViewer($request);
  22          $viewer->assign('BASE_CURRENCY_SYMBOL', $baseCurrenctDetails['symbol']);
  23          $viewer->assign('TAXCLASS_DETAILS', $recordModel->getTaxClassDetails());
  24          $viewer->assign('IMAGE_DETAILS', $recordModel->getImageDetails());
  25  
  26          return parent::showModuleDetailView($request);
  27      }
  28  
  29  	public function showModuleBasicView(Vtiger_Request $request) {
  30          return $this->showModuleDetailView($request);
  31      }
  32  
  33  	public function getHeaderScripts(Vtiger_Request $request) {
  34          $headerScriptInstances = parent::getHeaderScripts($request);
  35          $moduleName = $request->getModule();
  36          $moduleDetailFile = 'modules.'.$moduleName.'.resources.Detail';
  37          $moduleRelatedListFile = 'modules.'.$moduleName.'.resources.RelatedList';
  38          unset($headerScriptInstances[$moduleDetailFile]);
  39          unset($headerScriptInstances[$moduleRelatedListFile]);
  40  
  41          $jsFileNames = array(
  42              '~libraries/jquery/jquery.cycle.min.js',
  43              'modules.PriceBooks.resources.Detail',
  44              'modules.PriceBooks.resources.RelatedList',
  45          );
  46          
  47          $jsFileNames[] = $moduleDetailFile;
  48          $jsFileNames[] = $moduleRelatedListFile;
  49          
  50          $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
  51          $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
  52          return $headerScriptInstances;
  53      }
  54      
  55      /**
  56       * Function returns related records
  57       * @param Vtiger_Request $request
  58       * @return <type>
  59       */
  60  	function showRelatedList(Vtiger_Request $request) {
  61          $moduleName = $request->getModule();
  62          $relatedModuleName = $request->get('relatedModule');
  63          $parentId = $request->get('record');
  64          $label = $request->get('tab_label');
  65  
  66          $requestedPage = $request->get('page');
  67          if(empty ($requestedPage)) {
  68              $requestedPage = 1;
  69          }
  70  
  71          $pagingModel = new Vtiger_Paging_Model();
  72          $pagingModel->set('page',$requestedPage);
  73  
  74          $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId, $moduleName);
  75          $relationListView = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $relatedModuleName, $label);
  76          $orderBy = $request->get('orderby');
  77          $sortOrder = $request->get('sortorder');
  78          if($sortOrder == "ASC") {
  79              $nextSortOrder = "DESC";
  80              $sortImage = "icon-chevron-down";
  81          } else {
  82              $nextSortOrder = "ASC";
  83              $sortImage = "icon-chevron-up";
  84          }
  85          if(!empty($orderBy)) {
  86              $relationListView->set('orderby', $orderBy);
  87              $relationListView->set('sortorder',$sortOrder);
  88          }
  89          $models = $relationListView->getEntries($pagingModel);
  90          $links = $relationListView->getLinks();
  91          $header = $relationListView->getHeaders();
  92          $noOfEntries = count($models);
  93          
  94          if($relatedModuleName == 'PriceBooks'){
  95              foreach ($models as $recordId => $recorModel) {
  96                  $productIdsList[$parentId] = $parentId;
  97                  $relatedRecordCurrencyId = $recorModel->get('currency_id');
  98                  $parentModuleModel = $parentRecordModel->getModule();
  99                  $unitPricesList = $parentModuleModel->getPricesForProducts($relatedRecordCurrencyId, $productIdsList);
 100                  $recorModel->set('unit_price', $unitPricesList[$parentId]);
 101              }
 102          }
 103  
 104          $relationModel = $relationListView->getRelationModel();
 105          $relationField = $relationModel->getRelationField();
 106          
 107          $viewer = $this->getViewer($request);
 108          $viewer->assign('RELATED_RECORDS' , $models);
 109          $viewer->assign('PARENT_RECORD', $parentRecordModel);
 110          $viewer->assign('RELATED_LIST_LINKS', $links);
 111          $viewer->assign('RELATED_HEADERS', $header);
 112          $viewer->assign('RELATED_MODULE', $relationModel->getRelationModuleModel());
 113          $viewer->assign('RELATED_ENTIRES_COUNT', $noOfEntries);
 114          $viewer->assign('RELATION_FIELD', $relationField);
 115  
 116          if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
 117              $totalCount = $relationListView->getRelatedEntriesCount();
 118              $pageLimit = $pagingModel->getPageLimit();
 119              $pageCount = ceil((int) $totalCount / (int) $pageLimit);
 120  
 121              if($pageCount == 0){
 122                  $pageCount = 1;
 123              }
 124              $viewer->assign('PAGE_COUNT', $pageCount);
 125              $viewer->assign('TOTAL_ENTRIES', $totalCount);
 126              $viewer->assign('PERFORMANCE', true);
 127          }
 128          
 129          $viewer->assign('IS_EDITABLE', $relationModel->isEditable());
 130          $viewer->assign('IS_DELETABLE', $relationModel->isDeletable());
 131          
 132          $viewer->assign('MODULE', $moduleName);
 133          $viewer->assign('PAGING', $pagingModel);
 134          $viewer->assign('ORDER_BY',$orderBy);
 135          $viewer->assign('SORT_ORDER',$sortOrder);
 136          $viewer->assign('NEXT_SORT_ORDER',$nextSortOrder);
 137          $viewer->assign('SORT_IMAGE',$sortImage);
 138          $viewer->assign('COLUMN_NAME',$orderBy);
 139          $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
 140          
 141          return $viewer->view('RelatedList.tpl', $moduleName, 'true');
 142      }
 143  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1