Author: bibryam
Date: Tue Dec 25 06:56:44 2007 New Revision: 606792 URL: http://svn.apache.org/viewvc?rev=606792&view=rev Log: A patch from Sumit Pandit "When survey products are added to the cart then displaying survey price in the cart and adding it to the cart total." - OFBIZ-1499 It's now possible to pass surveyResponseId to "calculateProductPrice" service. Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java ofbiz/trunk/applications/product/servicedef/services_pricepromo.xml ofbiz/trunk/applications/product/src/org/ofbiz/product/price/PriceServices.java Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java?rev=606792&r1=606791&r2=606792&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java (original) +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartItem.java Tue Dec 25 06:56:44 2007 @@ -1044,6 +1044,24 @@ this.setDisplayPrice(this.basePrice); this.orderItemPriceInfos = (List) priceResult.get("orderItemPriceInfos"); } else { + if (productId != null) { + String productStoreId = cart.getProductStoreId(); + List productSurvey = ProductStoreWorker.getProductSurveys(delegator, productStoreId, productId, "CART_ADD", parentProductId); + if (UtilValidate.isNotEmpty(productSurvey) && UtilValidate.isNotEmpty(attributes)) { + List surveyResponses = (List) attributes.get("surveyResponses"); + if (UtilValidate.isNotEmpty(surveyResponses)) { + Iterator surveyItr = surveyResponses.iterator(); + while(surveyItr.hasNext()) { + String surveyResponseId = (String)surveyItr.next(); + // TODO: implement multiple survey per product + if (UtilValidate.isNotEmpty(surveyResponseId)) { + priceContext.put("surveyResponseId", surveyResponseId); + break; + } + } + } + } + } priceContext.put("prodCatalogId", this.getProdCatalogId()); priceContext.put("webSiteId", cart.getWebSiteId()); priceContext.put("productStoreId", cart.getProductStoreId()); Modified: ofbiz/trunk/applications/product/servicedef/services_pricepromo.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_pricepromo.xml?rev=606792&r1=606791&r2=606792&view=diff ============================================================================== --- ofbiz/trunk/applications/product/servicedef/services_pricepromo.xml (original) +++ ofbiz/trunk/applications/product/servicedef/services_pricepromo.xml Tue Dec 25 06:56:44 2007 @@ -43,7 +43,7 @@ <attribute name="autoUserLogin" type="GenericValue" mode="IN" optional="true"/> <attribute name="checkIncludeVat" type="String" mode="IN" optional="true"><!-- can be Y or N, defaults to N --></attribute> <attribute name="findAllQuantityPrices" type="String" mode="IN" optional="true"><!-- can be Y or N, defaults to N; see the allQuantityPrices attribute for more details --></attribute> - + <attribute name="surveyResponseId" type="String" mode="IN" optional="true"/> <attribute name="basePrice" type="Double" mode="OUT" optional="false"><!-- will only be different from price if there is a display price adjustment, for example: checkIncludeVat=Y and a VAT amount was found --></attribute> <attribute name="price" type="Double" mode="OUT" optional="false"/> <attribute name="listPrice" type="Double" mode="OUT" optional="true"/> Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/price/PriceServices.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/price/PriceServices.java?rev=606792&r1=606791&r2=606792&view=diff ============================================================================== --- ofbiz/trunk/applications/product/src/org/ofbiz/product/price/PriceServices.java (original) +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/price/PriceServices.java Tue Dec 25 06:56:44 2007 @@ -96,6 +96,7 @@ String prodCatalogId = (String) context.get("prodCatalogId"); String webSiteId = (String) context.get("webSiteId"); String checkIncludeVat = (String) context.get("checkIncludeVat"); + String surveyResponseId = (String) context.get("surveyResponseId"); String findAllQuantityPricesStr = (String) context.get("findAllQuantityPrices"); boolean findAllQuantityPrices = "Y".equals(findAllQuantityPricesStr); @@ -498,6 +499,9 @@ inMap.put("currencyUomId", currencyUomId); inMap.put("quantity", quantityDbl); inMap.put("amount", amountDbl); + if (UtilValidate.isNotEmpty(surveyResponseId)) { + inMap.put("surveyResponseId", surveyResponseId); + } try { Map outMap = dispatcher.runSync(customMethod.getString("customMethodName"), inMap); if (!ServiceUtil.isError(outMap)) { |
Free forum by Nabble | Edit this page |