Return-Path: X-Original-To: apmail-ofbiz-dev-archive@www.apache.org Delivered-To: apmail-ofbiz-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EAEDD178BB for ; Mon, 22 Jun 2015 09:01:39 +0000 (UTC) Received: (qmail 14870 invoked by uid 500); 22 Jun 2015 09:01:39 -0000 Delivered-To: apmail-ofbiz-dev-archive@ofbiz.apache.org Received: (qmail 14837 invoked by uid 500); 22 Jun 2015 09:01:39 -0000 Mailing-List: contact dev-help@ofbiz.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ofbiz.apache.org Delivered-To: mailing list dev@ofbiz.apache.org Received: (qmail 14826 invoked by uid 99); 22 Jun 2015 09:01:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Jun 2015 09:01:39 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of divesh.dutta@hotwaxsystems.com designates 209.85.217.180 as permitted sender) Received: from [209.85.217.180] (HELO mail-lb0-f180.google.com) (209.85.217.180) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Jun 2015 08:59:23 +0000 Received: by lbbti3 with SMTP id ti3so104440970lbb.1 for ; Mon, 22 Jun 2015 02:01:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=9isGFMQKF/K+rDA3WcWHkmMNHZFw63NRERcvad1lnlQ=; b=fFHz2MDD5mWLsoOCcnsD85bAvhp9Dlp+r/cTM/AU+hxjirRMSSCzZ0Rn0eYb8p18nl m2mGzhanMay9GN8or/obs6ZL2T90L/ozjEtHq8NThon1D9ij7NftKvpx8ztnInE6svKC 1Qqse4cv5p1+n0+57+cp1TfzQEvEOVqwc4z13OqFhPUDTvk5tuRz6agf/zxUYooS20WD gbRJgJIJGNc9ihEw+4T3S0Xdje/MDfEJk4OtxjLDFgMlGj6joLeZ8aOrWddb0l96y63L YAslPlsLCcNzwce/5c9CJJbSh4aFz1c3/Y67iZajJHZVdbjwc2vy47mqrf5Sw48XIZ3n urIw== X-Gm-Message-State: ALoCoQkNBPH3TUbj3xIkFifm7SghG48o7IdVewujUv104P7+QdZa8Xv5+x+VMLbSHc9r84p9SJ8i MIME-Version: 1.0 X-Received: by 10.112.28.74 with SMTP id z10mr28875880lbg.48.1434963671415; Mon, 22 Jun 2015 02:01:11 -0700 (PDT) Received: by 10.114.65.65 with HTTP; Mon, 22 Jun 2015 02:01:11 -0700 (PDT) In-Reply-To: References: <20150620145846.7E980AC062C@hades.apache.org> Date: Mon, 22 Jun 2015 14:31:11 +0530 Message-ID: Subject: Re: svn commit: r1686635 - in /ofbiz/trunk/applications/order: servicedef/ src/org/ofbiz/order/order/ webapp/ordermgr/WEB-INF/ webapp/ordermgr/WEB-INF/actions/order/ webapp/ordermgr/order/ From: Divesh Dutta To: "dev@ofbiz.apache.org" Cc: "commits@ofbiz.apache.org" Content-Type: multipart/alternative; boundary=001a1133b10ae692380519178311 X-Virus-Checked: Checked by ClamAV on apache.org --001a1133b10ae692380519178311 Content-Type: text/plain; charset=UTF-8 Thanks Deepak. Will change the code accordingly. Thanks -- Divesh Dutta. On Sun, Jun 21, 2015 at 10:40 AM, Deepak Dixit < deepak.dixit@hotwaxsystems.com> wrote: > Please do not use javolution classes. > > Thanks & Regards > -- > Deepak Dixit > > On Saturday, June 20, 2015, wrote: > > > Author: diveshdutta > > Date: Sat Jun 20 14:58:45 2015 > > New Revision: 1686635 > > > > URL: http://svn.apache.org/r1686635 > > Log: > > [OFBIZ-5347] 1) Fixed issue: Shipping costs not recalculated after > > changing sales order shipment method. For this introduced new service as > > per the design in this task. 2) This service will loads the cart save new > > shipping method in cart, re-do all the calculations for tax and > promotion, > > and saves the cart again in order. 3) Also adding new SECA rule which > will > > trigger resetGrandTotal service on new service updateShipGroupShipInfo. > > > > Modified: > > ofbiz/trunk/applications/order/servicedef/secas.xml > > ofbiz/trunk/applications/order/servicedef/services.xml > > > > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java > > > > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java > > > > > ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy > > ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml > > > > > ofbiz/trunk/applications/order/webapp/ordermgr/order/ordershippinginfo.ftl > > > > Modified: ofbiz/trunk/applications/order/servicedef/secas.xml > > URL: > > > http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/secas.xml?rev=1686635&r1=1686634&r2=1686635&view=diff > > > > > ============================================================================== > > --- ofbiz/trunk/applications/order/servicedef/secas.xml (original) > > +++ ofbiz/trunk/applications/order/servicedef/secas.xml Sat Jun 20 > > 14:58:45 2015 > > @@ -451,4 +451,7 @@ under the License. > > > value="SALES_ORDER"/> > > mode="sync"/> > > > > + > > + > > + > > > > > > Modified: ofbiz/trunk/applications/order/servicedef/services.xml > > URL: > > > http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services.xml?rev=1686635&r1=1686634&r2=1686635&view=diff > > > > > ============================================================================== > > --- ofbiz/trunk/applications/order/servicedef/services.xml (original) > > +++ ofbiz/trunk/applications/order/servicedef/services.xml Sat Jun 20 > > 14:58:45 2015 > > @@ -1187,4 +1187,12 @@ under the License. > > > > > > > > + > location="org.ofbiz.order.order.OrderServices" > > invoke="updateShipGroupShipInfo" auth="true"> > > + Update Shipping Information on Order > > View > > + > optional="false"/> > > + > optional="true"/> > > + > optional="true"/> > > + > optional="true"/> > > + > optional="true"/> > > + > > > > > > Modified: > > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java > > URL: > > > http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java?rev=1686635&r1=1686634&r2=1686635&view=diff > > > > > ============================================================================== > > --- > > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java > > (original) > > +++ > > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java > > Sat Jun 20 14:58:45 2015 > > @@ -33,6 +33,8 @@ import java.util.Locale; > > import java.util.Map; > > import java.util.Set; > > > > +import javolution.util.FastList; > > + > > import org.ofbiz.base.util.Debug; > > import org.ofbiz.base.util.UtilDateTime; > > import org.ofbiz.base.util.UtilFormatOut; > > @@ -3012,4 +3014,17 @@ public class OrderReadHelper { > > } > > } > > > > + public List getShippableSizes(String shipGrouSeqId) { > > + List shippableSizes = FastList.newInstance(); > > + > > + List validItems = > getValidOrderItems(shipGrouSeqId); > > + if (validItems != null) { > > + Iterator i = validItems.iterator(); > > + while (i.hasNext()) { > > + GenericValue item = i.next(); > > + shippableSizes.add(this.getItemSize(item)); > > + } > > + } > > + return shippableSizes; > > + } > > } > > > > Modified: > > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java > > URL: > > > http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1686635&r1=1686634&r2=1686635&view=diff > > > > > ============================================================================== > > --- > > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java > > (original) > > +++ > > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java > > Sat Jun 20 14:58:45 2015 > > @@ -6371,4 +6371,110 @@ public class OrderServices { > > > > return ServiceUtil.returnSuccess(); > > } > > + > > + /** > > + * This service runs when you update shipping method of Order from > > order view page. > > + */ > > + public static Map > > updateShipGroupShipInfo(DispatchContext dctx, Map Object> > > context) { > > + LocalDispatcher dispatcher = dctx.getDispatcher(); > > + Delegator delegator = dctx.getDelegator(); > > + Locale locale = (Locale) context.get("locale"); > > + GenericValue userLogin = > (GenericValue)context.get("userLogin"); > > + String orderId = (String)context.get("orderId"); > > + String shipGroupSeqId = (String)context.get("shipGroupSeqId"); > > + String contactMechId = (String)context.get("contactMechId"); > > + String oldContactMechId = > (String)context.get("oldContactMechId"); > > + String shipmentMethod = (String)context.get("shipmentMethod"); > > + > > + //load cart from order to update new shipping method or address > > + ShoppingCart shoppingCart = null; > > + try { > > + shoppingCart = loadCartForUpdate(dispatcher, delegator, > > userLogin, orderId); > > + } catch(GeneralException e) { > > + Debug.logError(e, module); > > + } > > + > > + String message = null; > > + if (UtilValidate.isNotEmpty(shipGroupSeqId)) { > > + OrderReadHelper orh = new OrderReadHelper(delegator, > orderId); > > + List shippingMethods = null; > > + String shipmentMethodTypeId = null; > > + String carrierPartyId = null; > > + > > + // get shipment method from OrderItemShipGroup, if not > > available in parameters > > + if (UtilValidate.isNotEmpty(shipmentMethod)) { > > + String[] arr = shipmentMethod.split( "@" ); > > + shipmentMethodTypeId = arr[0]; > > + carrierPartyId = arr[1]; > > + } else { > > + GenericValue orderItemshipGroup = > > orh.getOrderItemShipGroup(shipGroupSeqId); > > + shipmentMethodTypeId = > > orderItemshipGroup.getString("shipmentMethodTypeId"); > > + carrierPartyId = > > orderItemshipGroup.getString("carrierPartyId"); > > + } > > + int groupIdx =Integer.parseInt(shipGroupSeqId); > > + > > + /* check whether new selected contact address is same as old > > contact. > > + If contact address is different, get applicable ship > > methods for changed contact */ > > + if (UtilValidate.isNotEmpty(oldContactMechId) && > > oldContactMechId.equals(contactMechId)) { > > + shoppingCart.setShipmentMethodTypeId(groupIdx - 1, > > shipmentMethodTypeId); > > + shoppingCart.setCarrierPartyId(groupIdx - 1, > > carrierPartyId); > > + } else { > > + Map shippableItemFeatures = > > orh.getFeatureIdQtyMap(shipGroupSeqId); > > + BigDecimal shippableTotal = > > orh.getShippableTotal(shipGroupSeqId); > > + BigDecimal shippableWeight = > > orh.getShippableWeight(shipGroupSeqId); > > + List shippableItemSizes = > > orh.getShippableSizes(shipGroupSeqId); > > + > > + GenericValue shippingAddress = null; > > + if(UtilValidate.isEmpty(shippingAddress)) { > > + shippingAddress = > > orh.getShippingAddress(shipGroupSeqId); > > + } > > + > > + shippingMethods = > > ProductStoreWorker.getAvailableStoreShippingMethods(delegator, > > orh.getProductStoreId(), > > + shippingAddress, shippableItemSizes, > > shippableItemFeatures, shippableWeight, shippableTotal); > > + > > + boolean isShippingMethodAvailable = false; > > + // search shipping method for ship group is applicable > to > > new address or not. > > + for (GenericValue shippingMethod : shippingMethods) { > > + isShippingMethodAvailable = > > shippingMethod.getString("partyId").equals(carrierPartyId) && > > > shippingMethod.getString("shipmentMethodTypeId").equals(shipmentMethodTypeId); > > + if (isShippingMethodAvailable) { > > + shoppingCart.setShipmentMethodTypeId(groupIdx - > > 1, shipmentMethodTypeId); > > + shoppingCart.setCarrierPartyId(groupIdx - 1, > > carrierPartyId); > > + break; > > + } > > + } > > + > > + // set first shipping method from list, if shipping > > method for ship group is not applicable to new ship address. > > + if(!isShippingMethodAvailable) { > > + shoppingCart.setShipmentMethodTypeId(groupIdx - 1, > > shippingMethods.get(0).getString("shipmentMethodTypeId")); > > + shoppingCart.setCarrierPartyId(groupIdx - 1, > > shippingMethods.get(0).getString("carrierPartyId")); > > + > > + String newShipMethTypeDesc =null; > > + String shipMethTypeDesc=null; > > + try { > > + shipMethTypeDesc = > > delegator.findOne("ShipmentMethodType", > > UtilMisc.toMap("shipmentMethodTypeId", shipmentMethodTypeId), > > false).getString("description"); > > + newShipMethTypeDesc = > > delegator.findOne("ShipmentMethodType", > > UtilMisc.toMap("shipmentMethodTypeId", > > shippingMethods.get(0).getString("shipmentMethodTypeId")), > > false).getString("description"); > > + } catch(GenericEntityException e) { > > + Debug.logError(e, module); > > + } > > + // message to notify user for not applicability of > > shipping method > > + message= "Shipping Method "+carrierPartyId+" > > "+shipMethTypeDesc+" is not applicable to shipping address. > > "+shippingMethods.get(0).getString("carrierPartyId")+" > > "+newShipMethTypeDesc+" has been set for shipping address."; > > + } > > + shoppingCart.setShippingContactMechId(groupIdx-1, > > contactMechId); > > + } > > + } > > + > > + // save cart after updating shipping method and shipping > address. > > + Map changeMap = new HashMap(); > > + try { > > + saveUpdatedCartToOrder(dispatcher, delegator, shoppingCart, > > locale, userLogin, orderId, changeMap, true, false); > > + } catch(GeneralException e) { > > + Debug.logError(e, module); > > + } > > + > > + if (UtilValidate.isNotEmpty(message)) { > > + return ServiceUtil.returnSuccess(message); > > + } else { > > + return ServiceUtil.returnSuccess(); > > + } > > + } > > } > > > > Modified: > > > ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy > > URL: > > > http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy?rev=1686635&r1=1686634&r2=1686635&view=diff > > > > > ============================================================================== > > --- > > > ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy > > (original) > > +++ > > > ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy > > Sat Jun 20 14:58:45 2015 > > @@ -29,6 +29,7 @@ import org.ofbiz.order.order.*; > > import org.ofbiz.party.contact.*; > > import org.ofbiz.product.inventory.InventoryWorker; > > import org.ofbiz.product.catalog.CatalogWorker; > > +import org.ofbiz.product.store.ProductStoreWorker; > > import org.ofbiz.accounting.payment.*; > > > > orderId = parameters.orderId; > > @@ -420,8 +421,19 @@ if (orderHeader) { > > context.shippingContactMechList = shippingContactMechList; > > > > // list to find all the shipmentMethods from the view named > > "ProductStoreShipmentMethView". > > - if (productStore) { > > - context.productStoreShipmentMethList = > > from("ProductStoreShipmentMethView").where("productStoreId", > > > productStore.productStoreId).orderBy("sequenceNumber").cache(true).queryList(); > > + shipGroupShippingMethods = [:]; > > + shipGroups.each { shipGroup -> > > + shipGroupSeqId = shipGroup.shipGroupSeqId; > > + shippableItemFeatures = > > orderReadHelper.getFeatureIdQtyMap(shipGroupSeqId); > > + shippableTotal = > > orderReadHelper.getShippableTotal(shipGroupSeqId); > > + shippableWeight = > > orderReadHelper.getShippableWeight(shipGroupSeqId); > > + shippableItemSizes = > > orderReadHelper.getShippableSizes(shipGroupSeqId); > > + shippingAddress = > > orderReadHelper.getShippingAddress(shipGroupSeqId); > > + > > + List productStoreShipmentMethList = > > ProductStoreWorker.getAvailableStoreShippingMethods(delegator, > > orderReadHelper.getProductStoreId(), > > + shippingAddress, shippableItemSizes, > > shippableItemFeatures, shippableWeight, shippableTotal); > > + shipGroupShippingMethods.put(shipGroupSeqId, > > productStoreShipmentMethList); > > + context.shipGroupShippingMethods = shipGroupShippingMethods; > > } > > > > // Get a map of returnable items > > > > Modified: > > ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml > > URL: > > > http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml?rev=1686635&r1=1686634&r2=1686635&view=diff > > > > > ============================================================================== > > --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml > > (original) > > +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml > > Sat Jun 20 14:58:45 2015 > > @@ -1701,7 +1701,7 @@ under the License. > > > > > > > > - > value="updateOrderItemShipGroup"/> > > + > value="updateShipGroupShipInfo"/> > > > > > > > > @@ -1888,6 +1888,13 @@ under the License. > > > > > > > > + > > + > > + > > + > > + > > + > > + > > > >