| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| /* |
| * This script is also referenced by the ecommerce's screens and |
| * should not contain order component's specific code. |
| */ |
| import org.apache.ofbiz.entity.util.EntityUtil |
| |
| // Put the result of CategoryWorker.getRelatedCategories into the separateRootType function as attribute. |
| // The separateRootType function will return the list of category of given catalog. |
| // PLEASE NOTE : The structure of the list of separateRootType function is according to the JSON_DATA plugin of the jsTree. |
| |
| List separateRootType(roots) { |
| if(roots) { |
| prodRootTypeTree = [] |
| roots.each { root -> |
| prodCateMap = [:] |
| productCategory = root.getRelatedOne("ProductCategory", false) |
| prodCateMap.productCategoryId = productCategory.getString("productCategoryId") |
| prodCateMap.categoryName = productCategory.getString("categoryName") |
| prodCateMap.isCatalog = false |
| prodCateMap.isCategoryType = true |
| prodRootTypeTree.add(prodCateMap) |
| } |
| return prodRootTypeTree |
| } |
| } |
| |
| completedTree = [] |
| // Get the Catalogs |
| prodCatalogs = from("ProdCatalog").queryList() |
| if (prodCatalogs) { |
| prodCatalogs.each { prodCatalog -> |
| prodCatalogMap = [:] |
| prodCatalogMap.productCategoryId = prodCatalog.getString("prodCatalogId") |
| prodCatalogMap.categoryName = prodCatalog.getString("catalogName") |
| prodCatalogMap.isCatalog = true |
| prodCatalogMap.isCategoryType = false |
| prodCatalogCategories = from("ProdCatalogCategory").where("prodCatalogId", prodCatalog.prodCatalogId).filterByDate().queryList() |
| if (prodCatalogCategories) { |
| prodCatalogMap.child = separateRootType(prodCatalogCategories) |
| } |
| completedTree.add(prodCatalogMap) |
| } |
| } |
| // The complete tree list for the category tree |
| context.completedTree = completedTree |
| |
| stillInCatalogManager = true |
| productCategoryId = null |
| prodCatalogId = null |
| showProductCategoryId = null |
| |
| // Reset tree condition check. Are we still in the Catalog Manager ?. If not , then reset the tree. |
| if ((parameters.productCategoryId != null) || (parameters.showProductCategoryId != null)) { |
| stillInCatalogManager = false |
| productCategoryId = parameters.productCategoryId |
| showProductCategoryId = parameters.showProductCategoryId |
| } else if (parameters.prodCatalogId != null) { |
| stillInCatalogManager = false |
| prodCatalogId = parameters.prodCatalogId |
| } |
| context.stillInCatalogManager = stillInCatalogManager |
| context.productCategoryId = productCategoryId |
| context.prodCatalogId = prodCatalogId |
| context.showProductCategoryId = showProductCategoryId |