| /* |
| * 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.ofbiz.base.util.*; |
| import org.ofbiz.entity.*; |
| import org.ofbiz.service.*; |
| import org.ofbiz.product.product.ProductContentWrapper; |
| import org.ofbiz.product.config.ProductConfigWorker; |
| import org.ofbiz.product.catalog.*; |
| import org.ofbiz.product.store.*; |
| import org.ofbiz.order.shoppingcart.*; |
| import org.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 = delegator.findOne("Product", [productId : optProductId], false); |
| } |
| |
| 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 = dispatcher.runSync("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 = dispatcher.runSync("calcTaxForDisplay", UtilMisc.toMap("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 = dispatcher.runSync("calcTaxForDisplay", UtilMisc.toMap("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; |
| |
| } |