[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Inventory/views/ -> Edit.php (source)

   1  <?php
   2  /*+***********************************************************************************
   3   * The contents of this file are subject to the vtiger CRM Public License Version 1.0
   4   * ("License"); You may not use this file except in compliance with the License
   5   * The Original Code is:  vtiger CRM Open Source
   6   * The Initial Developer of the Original Code is vtiger.
   7   * Portions created by vtiger are Copyright (C) vtiger.
   8   * All Rights Reserved.
   9   *************************************************************************************/
  10  
  11  Class Inventory_Edit_View extends Vtiger_Edit_View {
  12  
  13  	public function process(Vtiger_Request $request) {
  14          $viewer = $this->getViewer($request);
  15          $moduleName = $request->getModule();
  16          $record = $request->get('record');
  17          $sourceRecord = $request->get('sourceRecord');
  18          $sourceModule = $request->get('sourceModule');
  19  
  20          if(!empty($record)  && $request->get('isDuplicate') == true) {
  21              $recordModel = Inventory_Record_Model::getInstanceById($record, $moduleName);
  22              $currencyInfo = $recordModel->getCurrencyInfo();
  23              $taxes = $recordModel->getProductTaxes();
  24              $shippingTaxes = $recordModel->getShippingTaxes();
  25              $relatedProducts = $recordModel->getProducts();
  26              $viewer->assign('MODE', '');
  27  
  28              //While Duplicating record, If the related record is deleted then we are removing related record info in record model
  29              $mandatoryFieldModels = $recordModel->getModule()->getMandatoryFieldModels();
  30              foreach ($mandatoryFieldModels as $fieldModel) {
  31                  if ($fieldModel->isReferenceField()) {
  32                      $fieldName = $fieldModel->get('name');
  33                      if (Vtiger_Util_Helper::checkRecordExistance($recordModel->get($fieldName))) {
  34                          $recordModel->set($fieldName, '');
  35                      }
  36                  }
  37              }
  38          } elseif (!empty($record)) {
  39              $recordModel = Inventory_Record_Model::getInstanceById($record, $moduleName);
  40              $currencyInfo = $recordModel->getCurrencyInfo();
  41              $taxes = $recordModel->getProductTaxes();
  42              $shippingTaxes = $recordModel->getShippingTaxes();
  43              $relatedProducts = $recordModel->getProducts();
  44              $viewer->assign('RECORD_ID', $record);
  45              $viewer->assign('MODE', 'edit');
  46          } elseif ($request->get('salesorder_id') || $request->get('quote_id')) {
  47              if ($request->get('salesorder_id')) {
  48                  $referenceId = $request->get('salesorder_id');
  49              } else {
  50                  $referenceId = $request->get('quote_id');
  51              }
  52  
  53              $parentRecordModel = Inventory_Record_Model::getInstanceById($referenceId);
  54              $currencyInfo = $parentRecordModel->getCurrencyInfo();
  55              $taxes = $parentRecordModel->getProductTaxes();
  56              $shippingTaxes = $parentRecordModel->getShippingTaxes();
  57              $relatedProducts = $parentRecordModel->getProducts();
  58              $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
  59              $recordModel->setRecordFieldValues($parentRecordModel);
  60          } else {
  61              $taxes = Inventory_Module_Model::getAllProductTaxes();
  62              $shippingTaxes = Inventory_Module_Model::getAllShippingTaxes();
  63              $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
  64              $viewer->assign('MODE', '');
  65  
  66              //The creation of Inventory record from action and Related list of product/service detailview the product/service details will calculated by following code
  67              if ($request->get('product_id') || $sourceModule === 'Products') {
  68                  if($sourceRecord) {
  69                      $productRecordModel = Products_Record_Model::getInstanceById($sourceRecord);
  70                  } else {
  71                      $productRecordModel = Products_Record_Model::getInstanceById($request->get('product_id'));
  72                  }
  73                  $relatedProducts = $productRecordModel->getDetailsForInventoryModule($recordModel);
  74              } elseif ($request->get('service_id') || $sourceModule === 'Services') {
  75                  if($sourceRecord) {
  76                      $serviceRecordModel = Services_Record_Model::getInstanceById($sourceRecord);
  77                  } else {
  78                      $serviceRecordModel = Services_Record_Model::getInstanceById($request->get('service_id'));
  79                  }
  80                  $relatedProducts = $serviceRecordModel->getDetailsForInventoryModule($recordModel);
  81              } elseif ($sourceRecord && ($sourceModule === 'Accounts'
  82                          || $sourceModule === 'Contacts'
  83                          || $sourceModule === 'Potentials'
  84                          || ($sourceModule === 'Vendors' && $moduleName === 'PurchaseOrder'))) {
  85                  $parentRecordModel = Vtiger_Record_Model::getInstanceById($sourceRecord, $sourceModule);
  86                  $recordModel->setParentRecordData($parentRecordModel);
  87              }
  88          }
  89  
  90          $moduleModel = $recordModel->getModule();
  91          $fieldList = $moduleModel->getFields();
  92          $requestFieldList = array_intersect_key($request->getAll(), $fieldList);
  93  
  94          //get the inventory terms and conditions
  95          $inventoryRecordModel = Inventory_Record_Model::getCleanInstance($moduleName);
  96          $termsAndConditions = $inventoryRecordModel->getInventoryTermsandConditions();
  97  
  98          foreach($requestFieldList as $fieldName=>$fieldValue) {
  99              $fieldModel = $fieldList[$fieldName];
 100              if($fieldModel->isEditable()) {
 101                  $recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue));
 102              }
 103          }
 104          $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel,
 105                  Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT);
 106  
 107          $viewer->assign('VIEW_MODE', "fullForm");
 108  
 109          $isRelationOperation = $request->get('relationOperation');
 110  
 111          //if it is relation edit
 112          $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation);
 113          if($isRelationOperation) {
 114              $viewer->assign('SOURCE_MODULE', $sourceModule);
 115              $viewer->assign('SOURCE_RECORD', $sourceRecord);
 116          }
 117          if(!empty($record)  && $request->get('isDuplicate') == true) {
 118              $viewer->assign('IS_DUPLICATE',true);
 119          } else {
 120              $viewer->assign('IS_DUPLICATE',false);
 121          }
 122          $currencies = Inventory_Module_Model::getAllCurrencies();
 123          $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName);
 124  
 125          $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE',Zend_Json::encode($picklistDependencyDatasource));
 126          $viewer->assign('RECORD',$recordModel);
 127          $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
 128          $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure());
 129          $viewer->assign('MODULE', $moduleName);
 130          $viewer->assign('CURRENTDATE', date('Y-n-j'));
 131          $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
 132          
 133          $viewer->assign('RELATED_PRODUCTS', $relatedProducts);
 134          $viewer->assign('SHIPPING_TAXES', $shippingTaxes);
 135          $viewer->assign('TAXES', $taxes);
 136          $viewer->assign('CURRENCINFO', $currencyInfo);
 137          $viewer->assign('CURRENCIES', $currencies);
 138          $viewer->assign('TERMSANDCONDITIONS', $termsAndConditions);
 139  
 140          $productModuleModel = Vtiger_Module_Model::getInstance('Products');
 141          $viewer->assign('PRODUCT_ACTIVE', $productModuleModel->isActive());
 142  
 143          $serviceModuleModel = Vtiger_Module_Model::getInstance('Services');
 144          $viewer->assign('SERVICE_ACTIVE', $serviceModuleModel->isActive());
 145  
 146          $viewer->view('EditView.tpl', 'Inventory');
 147      }
 148  
 149      /**
 150       * Function to get the list of Script models to be included
 151       * @param Vtiger_Request $request
 152       * @return <Array> - List of Vtiger_JsScript_Model instances
 153       */
 154  	function getHeaderScripts(Vtiger_Request $request) {
 155          $headerScriptInstances = parent::getHeaderScripts($request);
 156  
 157          $moduleName = $request->getModule();
 158          $modulePopUpFile = 'modules.'.$moduleName.'.resources.Popup';
 159          $moduleEditFile = 'modules.'.$moduleName.'.resources.Edit';
 160          unset($headerScriptInstances[$modulePopUpFile]);
 161          unset($headerScriptInstances[$moduleEditFile]);
 162  
 163  
 164          $jsFileNames = array(
 165                  'modules.Inventory.resources.Edit',
 166                  'modules.Inventory.resources.Popup',
 167          );
 168          $jsFileNames[] = $moduleEditFile;
 169          $jsFileNames[] = $modulePopUpFile;
 170          $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
 171          $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
 172          return $headerScriptInstances;
 173      }
 174  
 175  }


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