Exemplo n.º 1
0
 /**
  * Function returns Inventory Line Items
  * @param Vtiger_Request $request
  */
 function showLineItemDetails(Vtiger_Request $request)
 {
     $record = $request->get('record');
     $moduleName = $request->getModule();
     $recordModel = Inventory_Record_Model::getInstanceById($record);
     $relatedProducts = $recordModel->getProducts();
     //##Final details convertion started
     $finalDetails = $relatedProducts[1]['final_details'];
     //Final shipping tax details convertion ended
     $currencyFieldsList = array('grandTotal');
     foreach ($currencyFieldsList as $fieldName) {
         $finalDetails[$fieldName] = Vtiger_Currency_UIType::transformDisplayValue($finalDetails[$fieldName], null, true);
     }
     $relatedProducts[1]['final_details'] = $finalDetails;
     //##Final details convertion ended
     //##Product details convertion started
     $productsCount = count($relatedProducts);
     for ($i = 1; $i <= $productsCount; $i++) {
         $product = $relatedProducts[$i];
         $currencyFieldsList = array('listPrice', 'unitPrice', 'productTotal');
         foreach ($currencyFieldsList as $fieldName) {
             $product[$fieldName . $i] = Vtiger_Currency_UIType::transformDisplayValue($product[$fieldName . $i], null, true);
         }
         $relatedProducts[$i] = $product;
     }
     //##Product details convertion ended
     $viewer = $this->getViewer($request);
     $viewer->assign('RELATED_PRODUCTS', $relatedProducts);
     $viewer->assign('RECORD', $recordModel);
     $viewer->assign('MODULE_NAME', $moduleName);
     $viewer->view('LineItemsDetail.tpl', $moduleName);
 }
Exemplo n.º 2
0
 /**
  * Function returns Inventory Line Items
  * @param Vtiger_Request $request
  */
 function showLineItemDetails(Vtiger_Request $request)
 {
     $record = $request->get('record');
     $moduleName = $request->getModule();
     $recordModel = Inventory_Record_Model::getInstanceById($record);
     $relatedProducts = $recordModel->getProducts();
     //##Final details convertion started
     $finalDetails = $relatedProducts[1]['final_details'];
     //Final tax details convertion started
     $taxtype = $finalDetails['taxtype'];
     if ($taxtype == 'group') {
         $taxDetails = $finalDetails['taxes'];
         $taxCount = count($taxDetails);
         for ($i = 0; $i < $taxCount; $i++) {
             $taxDetails[$i]['amount'] = Vtiger_Currency_UIType::transformDisplayValue($taxDetails[$i]['amount'], null, true);
         }
         $finalDetails['taxes'] = $taxDetails;
     }
     //Final tax details convertion ended
     //Final shipping tax details convertion started
     $shippingTaxDetails = $finalDetails['sh_taxes'];
     $taxCount = count($shippingTaxDetails);
     for ($i = 0; $i < $taxCount; $i++) {
         $shippingTaxDetails[$i]['amount'] = Vtiger_Currency_UIType::transformDisplayValue($shippingTaxDetails[$i]['amount'], null, true);
     }
     $finalDetails['sh_taxes'] = $shippingTaxDetails;
     //Final shipping tax details convertion ended
     $currencyFieldsList = array('adjustment', 'grandTotal', 'hdnSubTotal', 'preTaxTotal', 'tax_totalamount', 'shtax_totalamount', 'discountTotal_final', 'discount_amount_final', 'shipping_handling_charge', 'totalAfterDiscount');
     foreach ($currencyFieldsList as $fieldName) {
         $finalDetails[$fieldName] = Vtiger_Currency_UIType::transformDisplayValue($finalDetails[$fieldName], null, true);
     }
     $relatedProducts[1]['final_details'] = $finalDetails;
     //##Final details convertion ended
     //##Product details convertion started
     $productsCount = count($relatedProducts);
     for ($i = 1; $i <= $productsCount; $i++) {
         $product = $relatedProducts[$i];
         //Product tax details convertion started
         if ($taxtype == 'individual') {
             $taxDetails = $product['taxes'];
             $taxCount = count($taxDetails);
             for ($j = 0; $j < $taxCount; $j++) {
                 $taxDetails[$j]['amount'] = Vtiger_Currency_UIType::transformDisplayValue($taxDetails[$j]['amount'], null, true);
             }
             $product['taxes'] = $taxDetails;
         }
         //Product tax details convertion ended
         $currencyFieldsList = array('taxTotal', 'netPrice', 'listPrice', 'unitPrice', 'productTotal', 'discountTotal', 'discount_amount', 'totalAfterDiscount');
         foreach ($currencyFieldsList as $fieldName) {
             $product[$fieldName . $i] = Vtiger_Currency_UIType::transformDisplayValue($product[$fieldName . $i], null, true);
         }
         $relatedProducts[$i] = $product;
     }
     //##Product details convertion ended
     $viewer = $this->getViewer($request);
     $viewer->assign('RELATED_PRODUCTS', $relatedProducts);
     $viewer->assign('RECORD', $recordModel);
     $viewer->assign('MODULE_NAME', $moduleName);
     $viewer->view('LineItemsDetail.tpl', 'Inventory');
 }
Exemplo n.º 3
0
 /**
  * This Function adds the specified product quantity to the Product Quantity in Stock
  * @param type $recordId
  */
 function addStockToProducts($recordId)
 {
     $db = PearDatabase::getInstance();
     $recordModel = Inventory_Record_Model::getInstanceById($recordId);
     $relatedProducts = $recordModel->getProducts();
     foreach ($relatedProducts as $key => $relatedProduct) {
         if ($relatedProduct['qty' . $key]) {
             $productId = $relatedProduct['hdnProductId' . $key];
             $result = $db->pquery("SELECT qtyinstock FROM vtiger_products WHERE productid=?", array($productId));
             $qty = $db->query_result($result, 0, "qtyinstock");
             $stock = $qty + $relatedProduct['qty' . $key];
             $db->pquery("UPDATE vtiger_products SET qtyinstock=? WHERE productid=?", array($stock, $productId));
         }
     }
 }
Exemplo n.º 4
0
 /**
  * @param $context \Workflow\VTEntity|\Workflow\VTInventoryEntity
  */
 public function handleTask(&$context)
 {
     $referenceId = $context->getId();
     Workflow2::$enableError = true;
     $parentRecordModel = Inventory_Record_Model::getInstanceById($referenceId);
     $currencyInfo = $parentRecordModel->getCurrencyInfo();
     $taxes = $parentRecordModel->getProductTaxes();
     $shippingTaxes = $parentRecordModel->getShippingTaxes();
     $relatedProducts = $parentRecordModel->getProducts();
     $recordModel = Vtiger_Record_Model::getCleanInstance('Invoice');
     $recordModel->setRecordFieldValues($parentRecordModel);
     $recordModel->save();
     $newId = $recordModel->getId();
     $contextRecord = $context;
     /**
      * @var $newObj \Workflow\VTEntity|\Workflow\VTInventoryEntity
      */
     $newObj = \Workflow\VTEntity::getForId($newId);
     $newObj->set('hdnTaxType', $parentRecordModel->get('hdnTaxType'));
     $newObj->importProductsFromRecord($relatedProducts, true);
     $setterMap = $this->get("setter");
     $this->fieldSetter->apply($newObj, $setterMap, $contextRecord, $this);
     $newObj->save();
     if ($this->get("redirectAfter") == "1") {
         $this->getWorkflow()->setSuccessRedirection("index.php?module=" . $newObj->getModuleName() . "&view=Detail&record=" . $newObj->getId());
     }
     if ($this->get("exec_workflow") !== "" && $this->get("exec_workflow") != -1) {
         $newContext = VTEntity::getForId($newObj->getId(), $newObj->getModuleName());
         $newContext->loadEnvironment($context->getEnvironment());
         $objWorkflow = new \Workflow\Main($this->get("exec_workflow"), false, $context->getUser());
         $objWorkflow->isSubWorkflow(true);
         $objWorkflow->setContext($newContext);
         $objWorkflow->start();
     }
     Workflow2::$enableError = true;
 }
 public function getModel()
 {
     if ($this->_isDummy) {
         return false;
     }
     $this->save();
     return \Inventory_Record_Model::getInstanceById($this->_id, $this->_moduleName);
 }
Exemplo n.º 6
0
function get_inventory_products($id, $module, $customerid, $sessionid)
{
    require_once 'include/utils/UserInfoUtil.php';
    require_once 'include/utils/utils.php';
    global $adb, $site_URL, $log;
    $user = new Users();
    $userid = getPortalUserid();
    $current_user = $user->retrieveCurrentUserInfoFromFile($userid);
    $isPermitted = check_permission($customerid, $module, $id);
    if ($isPermitted == false) {
        return array("#NOT AUTHORIZED#");
    }
    $recordModel = Inventory_Record_Model::getInstanceById($id);
    $relatedProducts = $recordModel->getProducts();
    $output[0] = $relatedProducts;
    return $output;
}
Exemplo n.º 7
0
 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($record) && $request->get('isDuplicate') == true) {
         $recordModel = Inventory_Record_Model::getInstanceById($record, $moduleName);
         $currencyInfo = $recordModel->getCurrencyInfo();
         $taxes = $recordModel->getProductTaxes();
         $relatedProducts = $recordModel->getProducts();
         $viewer->assign('MODE', '');
         //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, '');
                 }
             }
         }
     } 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')) {
         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);
         $viewer->assign('MODE', '');
         //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') {
             if ($sourceRecord) {
                 $productRecordModel = Products_Record_Model::getInstanceById($sourceRecord);
             } else {
                 $productRecordModel = Products_Record_Model::getInstanceById($request->get('product_id'));
             }
             $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 && ($sourceModule === 'Accounts' || $sourceModule === 'Contacts' || $sourceModule === 'Potentials' || $sourceModule === 'Vendors' && $moduleName === 'PurchaseOrder')) {
             $parentRecordModel = Vtiger_Record_Model::getInstanceById($sourceRecord, $sourceModule);
             $recordModel->setParentRecordData($parentRecordModel);
         }
     }
     $moduleModel = $recordModel->getModule();
     $fieldList = $moduleModel->getFields();
     $requestFieldList = array_intersect_key($request->getAll(), $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);
     $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource));
     $mappingRelatedField = $moduleModel->getMappingRelatedField($moduleName);
     $viewer->assign('MAPPING_RELATED_FIELD', Zend_Json::encode($mappingRelatedField));
     $viewer->assign('RECORD', $recordModel);
     $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
     $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure());
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('BLOCK_LIST', $moduleModel->getBlocks());
     $viewer->assign('CURRENTDATE', date('Y-n-j'));
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->assign('RELATED_PRODUCTS', $relatedProducts);
     $viewer->assign('TAXES', $taxes);
     $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());
     $viewer->assign('APIADDRESS', Settings_ApiAddress_Module_Model::getInstance('Settings:ApiAddress')->getConfig(false));
     $viewer->view('EditView.tpl', 'Inventory');
 }
Exemplo n.º 8
0
 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($record) && $request->get('isDuplicate') == true) {
         $recordModel = Inventory_Record_Model::getInstanceById($record, $moduleName);
         $currencyInfo = $recordModel->getCurrencyInfo();
         $taxes = $recordModel->getProductTaxes();
         $shippingTaxes = $recordModel->getShippingTaxes();
         $relatedProducts = $recordModel->getProducts();
         $viewer->assign('MODE', '');
         //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, '');
                 }
             }
         }
     } elseif (!empty($record)) {
         $recordModel = Inventory_Record_Model::getInstanceById($record, $moduleName);
         $currencyInfo = $recordModel->getCurrencyInfo();
         $taxes = $recordModel->getProductTaxes();
         $shippingTaxes = $recordModel->getShippingTaxes();
         $relatedProducts = $recordModel->getProducts();
         $viewer->assign('RECORD_ID', $record);
         $viewer->assign('MODE', 'edit');
         // SalesPlatform.ru begin Relation between Invoice & Consignment
     } elseif ($request->get('salesorder_id') || $request->get('quote_id') || $request->get('invoice_id')) {
         //} elseif ($request->get('salesorder_id') || $request->get('quote_id') || $request->get('invoice_id')) {
         // SalesPlatform.ru end
         if ($request->get('salesorder_id')) {
             $referenceId = $request->get('salesorder_id');
             // SalesPlatform.ru begin Relation between Invoice & Consignment
         } elseif ($request->get('invoice_id')) {
             $referenceId = $request->get('invoice_id');
             // SalesPlatform.ru end
         } else {
             $referenceId = $request->get('quote_id');
         }
         $parentRecordModel = Inventory_Record_Model::getInstanceById($referenceId);
         $currencyInfo = $parentRecordModel->getCurrencyInfo();
         $taxes = $parentRecordModel->getProductTaxes();
         $shippingTaxes = $parentRecordModel->getShippingTaxes();
         $relatedProducts = $parentRecordModel->getProducts();
         $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
         $recordModel->setRecordFieldValues($parentRecordModel);
         /** EventHandler START */
         $recordModel = EventHandler_Module_Model::do_filter('vtiger.filter.' . strtolower($moduleName) . '.convert', $recordModel, $parentRecordModel);
         /** EventHandler ENDE */
     } else {
         $taxes = Inventory_Module_Model::getAllProductTaxes();
         $shippingTaxes = Inventory_Module_Model::getAllShippingTaxes();
         $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
         $viewer->assign('MODE', '');
         //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') {
             if ($sourceRecord) {
                 $productRecordModel = Products_Record_Model::getInstanceById($sourceRecord);
             } else {
                 $productRecordModel = Products_Record_Model::getInstanceById($request->get('product_id'));
             }
             $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 && ($sourceModule === 'Accounts' || $sourceModule === 'Contacts' || $sourceModule === 'Potentials' || $sourceModule === 'Vendors' && $moduleName === 'PurchaseOrder')) {
             $parentRecordModel = Vtiger_Record_Model::getInstanceById($sourceRecord, $sourceModule);
             $recordModel->setParentRecordData($parentRecordModel);
         }
     }
     $moduleModel = $recordModel->getModule();
     $fieldList = $moduleModel->getFields();
     $requestFieldList = array_intersect_key($request->getAll(), $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));
         }
     }
     // SalesPlatform.ru begin Set default invoice status for SalesOrder
     if ($moduleName == "SalesOrder") {
         if (empty($record)) {
             $recordModel->set("invoicestatus", "AutoCreated");
         } else {
             $checkbox = $recordModel->get("enable_recurring");
             if ($checkbox != 1) {
                 $recordModel->set("invoicestatus", "AutoCreated");
             }
         }
     }
     // SalesPlatform.ru end
     // SalesPlatform.ru begin Unifying method for EditView preparing
     $recordModel = prepareEditView($recordModel, $_REQUEST, $viewer);
     // SalesPlatform.ru end
     $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT);
     // SalesPlatform.ru begin Field Validation Information
     $tabid = getTabid($moduleName);
     $validationData = getDBValidationData($recordModel->get('tab_name'), $tabid);
     $validationArray = split_validationdataArray($validationData);
     $viewer->assign("VALIDATION_DATA_FIELDNAME", $validationArray['fieldname']);
     $viewer->assign("VALIDATION_DATA_FIELDDATATYPE", $validationArray['datatype']);
     $viewer->assign("VALIDATION_DATA_FIELDLABEL", $validationArray['fieldlabel']);
     $viewer->assign('ID', $record);
     // SalesPlatform.ru end
     $viewer->assign('VIEW_MODE', "fullForm");
     $isRelationOperation = $request->get('relationOperation');
     //if it is relation edit
     //SalesPlatform.ru begin add relation create for Act from Invoice
     $isFromInvoiceCreate = $request->get('convertFromInvoice');
     $viewer->assign('IS_FROM_INVOICE_CREATE', $isFromInvoiceCreate);
     //SalesPlatform.ru end
     $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation);
     //SalesPlatform.ru begin add relation create for Act from Invoice
     if ($isRelationOperation || $isFromInvoiceCreate) {
         //if($isRelationOperation)
         //SalesPlatform.ru end
         $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);
     $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource));
     $viewer->assign('RECORD', $recordModel);
     $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
     $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure());
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('CURRENTDATE', date('Y-n-j'));
     $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
     $viewer->assign('RELATED_PRODUCTS', $relatedProducts);
     $viewer->assign('SHIPPING_TAXES', $shippingTaxes);
     $viewer->assign('TAXES', $taxes);
     $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());
     $viewer->view('EditView.tpl', 'Inventory');
 }