| /* |
| * 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. |
| */ |
| |
| import java.math.BigDecimal |
| import java.util.Map |
| |
| import org.apache.ofbiz.base.util.* |
| import org.apache.ofbiz.entity.* |
| import org.apache.ofbiz.service.* |
| import org.apache.ofbiz.product.product.ProductContentWrapper |
| import org.apache.ofbiz.product.config.ProductConfigWorker |
| import org.apache.ofbiz.product.catalog.* |
| import org.apache.ofbiz.product.store.* |
| import org.apache.ofbiz.order.shoppingcart.* |
| import org.apache.ofbiz.webapp.website.WebSiteWorker |
| |
| miniProduct = request.getAttribute("miniProduct") |
| optProductId = request.getAttribute("optProductId") |
| webSiteId = WebSiteWorker.getWebSiteId(request) |
| prodCatalogId = CatalogWorker.getCurrentCatalogId(request) |
| productStoreId = ProductStoreWorker.getProductStoreId(request) |
| cart = ShoppingCartEvents.getCartObject(request) |
| context.remove("totalPrice") |
| |
| if (optProductId) { |
| miniProduct = from("Product").where("productId", optProductId).queryOne() |
| } |
| |
| if (miniProduct && productStoreId && prodCatalogId ) { |
| // calculate the "your" price |
| priceParams = [product : miniProduct, |
| prodCatalogId : prodCatalogId, |
| webSiteId : webSiteId, |
| currencyUomId : cart.getCurrency(), |
| autoUserLogin : autoUserLogin, |
| productStoreId : productStoreId] |
| if (userLogin) priceParams.partyId = userLogin.partyId |
| priceResult = runService('calculateProductPrice', priceParams) |
| // returns: isSale, price, orderItemPriceInfos |
| context.priceResult = priceResult |
| // Check if Price has to be displayed with tax |
| if (productStore.get("showPricesWithVatTax").equals("Y")) { |
| Map priceMap = runService('calcTaxForDisplay', ["basePrice": priceResult.get("price"), "locale": locale, "productId": optProductId, "productStoreId": productStoreId]) |
| context.price = priceMap.get("priceWithTax") |
| } else { |
| context.price = priceResult.get("price") |
| } |
| |
| // get aggregated product totalPrice |
| if ("AGGREGATED".equals(miniProduct.productTypeId) || "AGGREGATED_SERVICE".equals(miniProduct.productTypeId)) { |
| configWrapper = ProductConfigWorker.getProductConfigWrapper(optProductId, cart.getCurrency(), request) |
| if (configWrapper) { |
| configWrapper.setDefaultConfig() |
| // Check if Config Price has to be displayed with tax |
| if (productStore.get("showPricesWithVatTax").equals("Y")) { |
| BigDecimal totalPriceNoTax = configWrapper.getTotalPrice() |
| Map totalPriceMap = runService('calcTaxForDisplay', ["basePrice": totalPriceNoTax, "locale": locale, "productId": optProductId, "productStoreId": productStoreId]) |
| context.totalPrice = totalPriceMap.get("priceWithTax") |
| } else { |
| context.totalPrice = configWrapper.getTotalPrice() |
| } |
| } |
| } |
| |
| context.miniProduct = miniProduct |
| context.nowTimeLong = nowTimestamp.getTime() |
| |
| context.miniProdFormName = request.getAttribute("miniProdFormName") |
| context.miniProdQuantity = request.getAttribute("miniProdQuantity") |
| |
| // make the miniProductContentWrapper |
| ProductContentWrapper miniProductContentWrapper = new ProductContentWrapper(miniProduct, request) |
| context.miniProductContentWrapper = miniProductContentWrapper |
| |
| } |