[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |