We've been using the pattern of passing parameters into new cart items through factory and constructor methods for too long, and it's past the point where it's a bit crazy! Before this becomes a dependency that is difficult to change for these new parameters, could we change this so that it does not change those method signatures (ie doesn't add the parameters) but instead calls set methods on the cart object AFTER it is created? -David On Feb 24, 2008, at 7:22 PM, [hidden email] wrote: > Author: hansbak > Date: Sun Feb 24 18:22:15 2008 > New Revision: 630718 > > URL: http://svn.apache.org/viewvc?rev=630718&view=rev > Log: > introduction of new reservation entities: OFBIZ-1590 > > Modified: > ofbiz/trunk/applications/accounting/entitydef/entitygroup.xml > ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/ > OrderServices.java > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCart.java > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartEvents.java > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartHelper.java > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartItem.java > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartServices.java > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > ShoppingListEvents.java > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > ShoppingListServices.java > ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml > > Modified: ofbiz/trunk/applications/accounting/entitydef/ > entitygroup.xml > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitygroup.xml?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/accounting/entitydef/entitygroup.xml > (original) > +++ ofbiz/trunk/applications/accounting/entitydef/entitygroup.xml > Sun Feb 24 18:22:15 2008 > @@ -83,6 +83,11 @@ > <entity-group group="org.ofbiz" entity="FixedAssetType" /> > <entity-group group="org.ofbiz" entity="FixedAssetTypeAttr" /> > <entity-group group="org.ofbiz" > entity="PartyFixedAssetAssignment" /> > + <entity-group group="org.ofbiz" entity="AccommodationClass"/> > + <entity-group group="org.ofbiz" entity="AccommodationMap"/> > + <entity-group group="org.ofbiz" entity="AccommodationSpot"/> > + <entity-group group="org.ofbiz" entity="AccommodationMapType"/> > + > > <!-- ========================================================= --> > <!-- org.ofbiz.accounting.invoice --> > > Modified: ofbiz/trunk/applications/accounting/entitydef/ > entitymodel.xml > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml > (original) > +++ ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml > Sun Feb 24 18:22:15 2008 > @@ -954,6 +954,62 @@ > </relation> > </entity> > > + <entity entity-name="AccommodationClass" > + package-name="org.ofbiz.accounting.fixedasset" > + title="Accommodation Class"> > + <field name="accommodationClassId" type="id-ne"></field> > + <field name="parentClassId" type="id-ne"></field> > + <field name="description" type="description"></field> > + <prim-key field="accommodationClassId"/> > + <relation type="one" fk-name="ACCOMM_CLASS_PAR" title="Parent" > rel-entity-name="AccommodationClass"> > + <key-map field-name="parentClassId" rel-field- > name="accommodationClassId"/> > + </relation> > + </entity> > + <entity entity-name="AccommodationSpot" > + package-name="org.ofbiz.order.reservations" > + title="Accommodation Spot"> > + <field name="accommodationSpotId" type="id-ne"></field> > + <field name="accommodationClassId" type="id"></field> > + <field name="fixedAssetId" type="id"></field> > + <field name="numberOfSpaces" type="numeric"></field> > + <field name="description" type="description"></field> > + <prim-key field="accommodationSpotId"/> > + <relation type="one" fk-name="ACCOM_CLASS" rel-entity- > name="AccommodationClass"> > + <key-map field-name="accommodationClassId"/> > + </relation> > + <relation type="one" fk-name="SPOT_FA" rel-entity- > name="FixedAsset"> > + <key-map field-name="fixedAssetId"/> > + </relation> > + </entity> > + > + <entity entity-name="AccommodationMap" > + package-name="org.ofbiz.accounting.fixedasset" > + title="Accommodation Map"> > + <field name="accommodationMapId" type="id-ne"></field> > + <field name="accommodationClassId" type="id-ne"></field> > + <field name="fixedAssetId" type="id"></field> > + <field name="accommodationMapTypeId" type="id"></field> > + <field name="numberOfSpaces" type="numeric"></field> > + <prim-key field="accommodationMapId"/> > + <relation type="one" fk-name="ACMD_MAP_CLASS" rel-entity- > name="AccommodationClass"> > + <key-map field-name="accommodationClassId"/> > + </relation> > + <relation type="one" fk-name="ACMD_MAP_FA" rel-entity- > name="FixedAsset"> > + <key-map field-name="fixedAssetId"/> > + </relation> > + <relation type="one" fk-name="ACMD_MAP_TYPE" rel-entity- > name="AccommodationMapType"> > + <key-map field-name="accommodationMapTypeId"/> > + </relation> > + </entity> > + > + <entity entity-name="AccommodationMapType" > + package-name="org.ofbiz.accounting.fixedasset" > + title="Accommodation Map Type"> > + <field name="accommodationMapTypeId" type="id-ne"></field> > + <field name="description" type="description"></field> > + <prim-key field="accommodationMapTypeId"/> > + </entity> > + > <!-- ========================================================= --> > <!-- org.ofbiz.accounting.invoice --> > <!-- ========================================================= --> > > 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=630718&r1=630717&r2=630718&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 Sun Feb 24 18:22:15 2008 > @@ -369,13 +369,15 @@ > errorMessages.add(excMsg); > return > ServiceUtil > .returnError > (UtilProperties > .getMessage > (resource_error > ,"OrderCouldNotFindRelatedFixedAssetForTheProduct > ",UtilMisc.toMap("productId",orderItem.getString("productId")), > locale )); > } > + > if (selFixedAssetProduct != null && > selFixedAssetProduct.size() > 0) { > Iterator firstOne = > selFixedAssetProduct.iterator(); > if(firstOne.hasNext()) { > GenericValue fixedAssetProduct = > delegator.makeValue("FixedAssetProduct"); > - fixedAssetProduct = (GenericValue) > firstOne.next(); > - > workEffort.set("fixedAssetId",fixedAssetProduct.get("fixedAssetId")); > + fixedAssetProduct = (GenericValue) > firstOne.next(); > + > workEffort.set("fixedAssetId",fixedAssetProduct.get("fixedAssetId")); > > workEffort.set("quantityToProduce",orderItem.get("quantity")); // > have quantity easy available later... > + > workEffort.set("createdByUserLogin", userLogin.get("userLoginId")); > } > } > break; // item found, so go to next > orderitem. > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > shoppingcart/ShoppingCart.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCart.java (original) > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCart.java Sun Feb 24 18:22:15 2008 > @@ -448,6 +448,17 @@ > public int addOrIncreaseItem(String productId, Double > selectedAmountDbl, double quantity, Timestamp reservStart, Double > reservLengthDbl, Double reservPersonsDbl, > Timestamp shipBeforeDate, Timestamp shipAfterDate, Map > features, Map attributes, String prodCatalogId, > ProductConfigWrapper configWrapper, String itemType, > String itemGroupNumber, String parentProductId, LocalDispatcher > dispatcher) throws CartItemModifyException, ItemNotFoundException { > + > + return > addOrIncreaseItem > (productId > ,selectedAmountDbl > ,quantity,reservStart,reservLengthDbl,reservPersonsDbl, > + > null > ,null,shipBeforeDate,shipAfterDate,features,attributes,prodCatalogId, > + > configWrapper,itemType,itemGroupNumber,parentProductId,dispatcher); > + } > + > + /** add rental (with accommodation) item to cart */ > + public int addOrIncreaseItem(String productId, Double > selectedAmountDbl, double quantity, Timestamp reservStart, Double > reservLengthDbl, Double reservPersonsDbl, > + String accommodationMapId, String accommodationSpotId, > + Timestamp shipBeforeDate, Timestamp shipAfterDate, Map > features, Map attributes, String prodCatalogId, > + ProductConfigWrapper configWrapper, String itemType, > String itemGroupNumber, String parentProductId, LocalDispatcher > dispatcher) throws CartItemModifyException, ItemNotFoundException { > if (isReadOnlyCart()) { > throw new CartItemModifyException("Cart items cannot be > changed"); > } > @@ -463,7 +474,7 @@ > ShoppingCartItem sci = (ShoppingCartItem) > cartLines.get(i); > > > - if (sci.equals(productId, reservStart, reservLength, > reservPersons, features, attributes, prodCatalogId, configWrapper, > itemType, itemGroup, selectedAmount)) { > + if (sci.equals(productId, reservStart, reservLength, > reservPersons, accommodationMapId, accommodationSpotId, features, > attributes, prodCatalogId,selectedAmount, configWrapper, itemType, > itemGroup, false)) { > double newQuantity = sci.getQuantity() + quantity; > > if (Debug.verboseOn()) Debug.logVerbose("Found a > match for id " + productId + " on line " + i + ", updating quantity > to " + newQuantity, module); > @@ -492,7 +503,7 @@ > } > } else { > return this.addItem(0, ShoppingCartItem.makeItem(new > Integer(0), productId, selectedAmountDbl, quantity, null, > - reservStart, reservLengthDbl, reservPersonsDbl, > shipBeforeDate, shipAfterDate, > + reservStart, reservLengthDbl, reservPersonsDbl, > accommodationMapId, accommodationSpotId, shipBeforeDate, > shipAfterDate, > features, attributes, prodCatalogId, > configWrapper, itemType, itemGroup, dispatcher, > this, Boolean.TRUE, Boolean.TRUE, > parentProductId, Boolean.FALSE, Boolean.FALSE)); > } > @@ -556,6 +567,21 @@ > public int addItemToEnd(String productId, Double amount, double > quantity, Double unitPrice, Timestamp reservStart, Double > reservLengthDbl, Double reservPersonsDbl, HashMap features, HashMap > attributes, String prodCatalogId, ProductConfigWrapper > configWrapper, String itemType, LocalDispatcher dispatcher, Boolean > triggerExternalOps, Boolean triggerPriceRules, Boolean > skipInventoryChecks, Boolean skipProductChecks) throws > CartItemModifyException, ItemNotFoundException { > return addItemToEnd(ShoppingCartItem.makeItem(null, > productId, amount, quantity, unitPrice, reservStart, > reservLengthDbl, reservPersonsDbl, null, null, features, attributes, > prodCatalogId, configWrapper, itemType, null, dispatcher, this, > triggerExternalOps, triggerPriceRules, null, skipInventoryChecks, > skipProductChecks)); > } > + > + /** Add an accommodation(rental )item to the shopping cart. */ > + public int addItemToEnd(String productId, Double amount, double > quantity, Double unitPrice, Timestamp reservStart, Double > reservLengthDbl, Double reservPersonsDbl, String accommodationMapId, > String accommodationSpotId, HashMap features, HashMap attributes, > String prodCatalogId, String itemType, LocalDispatcher dispatcher, > Boolean triggerExternalOps, Boolean triggerPriceRules) throws > CartItemModifyException, ItemNotFoundException { > + return addItemToEnd(ShoppingCartItem.makeItem(null, > productId, amount, quantity, unitPrice, reservStart, > reservLengthDbl, reservPersonsDbl, accommodationMapId, > accommodationSpotId, null, null, features, attributes, > prodCatalogId, null, itemType, null, dispatcher, this, > triggerExternalOps, triggerPriceRules, null, Boolean.FALSE, > Boolean.FALSE)); > + } > + > + /** Add an accommodation(rental)item to the shopping cart. */ > + public int addItemToEnd(String productId, Double amount, double > quantity, Double unitPrice, Timestamp reservStart, Double > reservLengthDbl, Double reservPersonsDbl,String accommodationMapId, > String accommodationSpotId, HashMap features, HashMap attributes, > String prodCatalogId, String itemType, LocalDispatcher dispatcher, > Boolean triggerExternalOps, Boolean triggerPriceRules, Boolean > skipInventoryChecks, Boolean skipProductChecks) throws > CartItemModifyException, ItemNotFoundException { > + return addItemToEnd(ShoppingCartItem.makeItem(null, > productId, amount, quantity, unitPrice, reservStart, > reservLengthDbl, reservPersonsDbl, accommodationMapId, > accommodationSpotId, null, null, features, attributes, > prodCatalogId, null, itemType, null, dispatcher, this, > triggerExternalOps, triggerPriceRules, null, skipInventoryChecks, > skipProductChecks)); > + } > + > + /** Add an accommodation(rental/aggregated)item to the shopping > cart. */ > + public int addItemToEnd(String productId, Double amount, double > quantity, Double unitPrice, Timestamp reservStart, Double > reservLengthDbl, Double reservPersonsDbl,String accommodationMapId, > String accommodationSpotId, HashMap features, HashMap attributes, > String prodCatalogId, ProductConfigWrapper configWrapper, String > itemType, LocalDispatcher dispatcher, Boolean triggerExternalOps, > Boolean triggerPriceRules, Boolean skipInventoryChecks, Boolean > skipProductChecks) throws CartItemModifyException, > ItemNotFoundException { > + return addItemToEnd(ShoppingCartItem.makeItem(null, > productId, amount, quantity, unitPrice, reservStart, > reservLengthDbl, reservPersonsDbl, accommodationMapId, > accommodationSpotId, null, null, features, attributes, > prodCatalogId, configWrapper, itemType, null, dispatcher, this, > triggerExternalOps, triggerPriceRules, null, skipInventoryChecks, > skipProductChecks)); > + } > > /** Add an item to the shopping cart. */ > public int addItemToEnd(String productId, Double amount, double > quantity, Double unitPrice, HashMap features, HashMap attributes, > String prodCatalogId, String itemType, LocalDispatcher dispatcher, > Boolean triggerExternalOps, Boolean triggerPriceRules, Boolean > skipInventoryChecks, Boolean skipProductChecks) throws > CartItemModifyException, ItemNotFoundException { > @@ -3407,7 +3433,8 @@ > workEffort.set("reservPersons",new > Double(item.getReservPersons())); > workEffort.set("reserv2ndPPPerc", new > Double(item.getReserv2ndPPPerc())); > workEffort.set("reservNthPPPerc", new > Double(item.getReservNthPPPerc())); > - > + workEffort.set("accommodationMapId", > item.getAccommodationMapId()); > + > workEffort.set("accommodationSpotId",item.getAccommodationSpotId()); > allWorkEfforts.add(workEffort); > } > } > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > shoppingcart/ShoppingCartEvents.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartEvents.java (original) > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartEvents.java Sun Feb 24 18:22:15 2008 > @@ -133,6 +133,8 @@ > Double reservLength = null; > String reservPersonsStr = null; > Double reservPersons = null; > + String accommodationMapId = null; > + String accommodationSpotId = null; > String shipBeforeDateStr = null; > String shipAfterDateStr = null; > java.sql.Timestamp shipBeforeDate = null; > @@ -321,6 +323,13 @@ > request.setAttribute("_EVENT_MESSAGE_", > UtilProperties.getMessage(resource, > "cart.addToCart.enterBookingInforamtionBeforeAddingToCart", locale)); > return "product"; > } > + > + //check accommodation for reservations > + if((paramMap.containsKey("accommodationMapId")) && > (paramMap.containsKey("accommodationSpotId"))){ > + accommodationMapId = (String) > paramMap.remove("accommodationMapId"); > + accommodationSpotId = (String) > paramMap.remove("accommodationSpotId"); > + > + } > > } > > @@ -492,6 +501,7 @@ > // Translate the parameters and add to the cart > result = cartHelper.addToCart(catalogId, shoppingListId, > shoppingListItemSeqId, productId, productCategoryId, > itemType, itemDescription, price, amount, quantity, > reservStart, reservLength, reservPersons, > + accommodationMapId, accommodationSpotId, > shipBeforeDate, shipAfterDate, configWrapper, > itemGroupNumber, paramMap, parentProductId); > controlDirective = processResult(result, request); > > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > shoppingcart/ShoppingCartHelper.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartHelper.java (original) > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartHelper.java Sun Feb 24 18:22:15 2008 > @@ -103,6 +103,20 @@ > java.sql.Timestamp reservStart, Double reservLength, > Double reservPersons, > java.sql.Timestamp shipBeforeDate, java.sql.Timestamp > shipAfterDate, > ProductConfigWrapper configWrapper, String > itemGroupNumber, Map context, String parentProductId) { > + > + return > addToCart(catalogId,shoppingListId,shoppingListItemSeqId,productId, > + > productCategoryId,itemType,itemDescription,price,amount,quantity, > + > reservStart > ,reservLength,reservPersons,null,null,shipBeforeDate,shipAfterDate, > + > configWrapper,itemGroupNumber,context,parentProductId); > + } > + > + /** Event to add an item to the shopping cart with > accommodation. */ > + public Map addToCart(String catalogId, String shoppingListId, > String shoppingListItemSeqId, String productId, > + String productCategoryId, String itemType, String > itemDescription, > + Double price, Double amount, double quantity, > + java.sql.Timestamp reservStart, Double reservLength, > Double reservPersons, String accommodationMapId,String > accommodationSpotId, > + java.sql.Timestamp shipBeforeDate, java.sql.Timestamp > shipAfterDate, > + ProductConfigWrapper configWrapper, String > itemGroupNumber, Map context, String parentProductId) { > Map result = null; > Map attributes = null; > String pProductId = null; > @@ -215,9 +229,11 @@ > try { > int itemId = -1; > if (productId != null) { > - itemId = cart.addOrIncreaseItem(productId, amount, > quantity, reservStart, reservLength, > - reservPersons, > shipBeforeDate, shipAfterDate, additionalFeaturesMap, attributes, > + > + itemId = cart.addOrIncreaseItem(productId, > amount, quantity, reservStart, reservLength, > + reservPersons, > accommodationMapId, accommodationSpotId, shipBeforeDate, > shipAfterDate, additionalFeaturesMap, attributes, > catalogId, > configWrapper, itemType, itemGroupNumber, pProductId, dispatcher); > + > } else { > itemId = cart.addNonProductItem(itemType, > itemDescription, productCategoryId, price, quantity, attributes, > catalogId, itemGroupNumber, dispatcher); > } > @@ -666,14 +682,16 @@ > } else if > (parameterName.toUpperCase().startsWith("DESCRIPTION")) { > itemDescription = quantString; // the > quantString is actually the description if the field name starts > with DESCRIPTION > } else if > (parameterName.startsWith("reservStart")) { > - // should have format: yyyy-mm-dd > hh:mm:ss.fffffffff > - quantString += " 00:00:00.000000000"; > - if (item != null) { > - Timestamp reservStart = > Timestamp.valueOf(quantString); > - item.setReservStart(reservStart); > - } > + if (quantString.length() ==0){ > + // should have format: yyyy-mm-dd > hh:mm:ss.fffffffff > + quantString += " 00:00:00.000000000"; > + } > + if (item != null) { > + Timestamp reservStart = > Timestamp.valueOf(quantString); > + item.setReservStart(reservStart); > + } > } else if > (parameterName.startsWith("reservLength")) { > - if (item != null) { > + if (item != null) { > double reservLength = > nf.parse(quantString).doubleValue(); > item.setReservLength(reservLength); > } > > 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=630718&r1=630717&r2=630718&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 Sun Feb 24 18:22:15 2008 > @@ -96,6 +96,8 @@ > private double reservLength = 0; > /** for reservations: number of persons using */ > private double reservPersons = 0; > + private String accommodationMapId = null; > + private String accommodationSpotId = null; > private double quantity = 0.0; > private double basePrice = 0.0; > private Double displayPrice = null; > @@ -282,6 +284,25 @@ > Map additionalProductFeatureAndAppls, Map attributes, > String prodCatalogId, ProductConfigWrapper configWrapper, > String itemType, ShoppingCart.ShoppingCartItemGroup > itemGroup, LocalDispatcher dispatcher, ShoppingCart cart, Boolean > triggerExternalOpsBool, Boolean triggerPriceRulesBool, String > parentProductId, Boolean skipInventoryChecks, Boolean > skipProductChecks) > throws CartItemModifyException, ItemNotFoundException { > + > + return > makeItem > (cartLocation,productId,selectedAmountDbl,quantity,unitPriceDbl, > + > reservStart > ,reservLengthDbl > ,reservPersonsDbl,null,null,shipBeforeDate,shipAfterDate, > + > additionalProductFeatureAndAppls > ,attributes,prodCatalogId,configWrapper, > + > itemType > ,itemGroup > ,dispatcher,cart,triggerExternalOpsBool,triggerPriceRulesBool, > + > parentProductId,skipInventoryChecks,skipProductChecks); > + > + } > + > + /** > + * Makes a ShoppingCartItem and adds it to the cart. > + * @param accommodationMapId Optional. reservations add into > workeffort > + * @param accommodationSpotId Optional. reservations add into > workeffort > + */ > + public static ShoppingCartItem makeItem(Integer cartLocation, > String productId, Double selectedAmountDbl, double quantity, Double > unitPriceDbl, > + Timestamp reservStart, Double reservLengthDbl, Double > reservPersonsDbl,String accommodationMapId,String > accommodationSpotId, Timestamp shipBeforeDate, Timestamp > shipAfterDate, > + Map additionalProductFeatureAndAppls, Map attributes, > String prodCatalogId, ProductConfigWrapper configWrapper, > + String itemType, ShoppingCart.ShoppingCartItemGroup > itemGroup, LocalDispatcher dispatcher, ShoppingCart cart, Boolean > triggerExternalOpsBool, Boolean triggerPriceRulesBool, String > parentProductId, Boolean skipInventoryChecks, Boolean > skipProductChecks) > + throws CartItemModifyException, ItemNotFoundException { > GenericDelegator delegator = cart.getDelegator(); > GenericValue product = null; > GenericValue parentProduct = null; > @@ -322,7 +343,7 @@ > } > } > return makeItem(cartLocation, product, selectedAmountDbl, > quantity, unitPriceDbl, > - reservStart, reservLengthDbl, reservPersonsDbl, > shipBeforeDate, shipAfterDate, > + reservStart, reservLengthDbl, reservPersonsDbl, > accommodationMapId, accommodationSpotId, shipBeforeDate, > shipAfterDate, > additionalProductFeatureAndAppls, attributes, > prodCatalogId, configWrapper, > itemType, itemGroup, dispatcher, cart, > triggerExternalOpsBool, triggerPriceRulesBool, parentProduct, > skipInventoryChecks, skipProductChecks); > } > @@ -362,6 +383,25 @@ > String prodCatalogId, ProductConfigWrapper > configWrapper, String itemType, ShoppingCart.ShoppingCartItemGroup > itemGroup, LocalDispatcher dispatcher, > ShoppingCart cart, Boolean triggerExternalOpsBool, > Boolean triggerPriceRulesBool, GenericValue parentProduct, Boolean > skipInventoryChecks, Boolean skipProductChecks) throws > CartItemModifyException { > > + return makeItem(cartLocation,product,selectedAmountDbl, > + > quantity,unitPriceDbl,reservStart,reservLengthDbl,reservPersonsDbl, > + > null > ,null > ,shipBeforeDate > ,shipAfterDate,additionalProductFeatureAndAppls,attributes, > + > prodCatalogId,configWrapper,itemType,itemGroup,dispatcher,cart, > + > triggerExternalOpsBool > ,triggerPriceRulesBool > ,parentProduct,skipInventoryChecks,skipProductChecks); > + } > + > + /** > + * Makes a ShoppingCartItem and adds it to the cart. > + * @param accommodationMapId Optional. reservations add into > workeffort > + * @param accommodationSpotId Optional. reservations add into > workeffort > + */ > + public static ShoppingCartItem makeItem(Integer cartLocation, > GenericValue product, Double selectedAmountDbl, > + double quantity, Double unitPriceDbl, Timestamp > reservStart, Double reservLengthDbl, Double reservPersonsDbl, > + String accommodationMapId,String accommodationSpotId, > + Timestamp shipBeforeDate, Timestamp shipAfterDate, Map > additionalProductFeatureAndAppls, Map attributes, > + String prodCatalogId, ProductConfigWrapper > configWrapper, String itemType, ShoppingCart.ShoppingCartItemGroup > itemGroup, LocalDispatcher dispatcher, > + ShoppingCart cart, Boolean triggerExternalOpsBool, > Boolean triggerPriceRulesBool, GenericValue parentProduct, Boolean > skipInventoryChecks, Boolean skipProductChecks) throws > CartItemModifyException { > + > ShoppingCartItem newItem = new ShoppingCartItem(product, > additionalProductFeatureAndAppls, attributes, prodCatalogId, > configWrapper, cart.getLocale(), itemType, itemGroup, parentProduct); > > double selectedAmount = selectedAmountDbl == null ? 0.0 : > selectedAmountDbl.doubleValue(); > @@ -468,7 +508,11 @@ > > if (product.get("reservNthPPPerc") != null) > > newItem > .setReservNthPPPerc > (product.getDouble("reservNthPPPerc").doubleValue()); > - > + > + if ((accommodationMapId != null) && > (accommodationSpotId != null)) { > + > newItem.setAccommodationId(accommodationMapId,accommodationSpotId); > + } > + > // check to see if the related fixed asset is available > for rent > String isAvailable = > checkAvailability(product.getString("productId"), quantity, > reservStart, reservLength, cart); > if(isAvailable.compareTo("OK") != 0) { > @@ -594,6 +638,8 @@ > this.reservStart = item.getReservStart(); > this.reservLength = item.getReservLength(); > this.reservPersons = item.getReservPersons(); > + this.accommodationMapId = item.getAccommodationMapId(); > + this.accommodationSpotId = item.getAccommodationSpotId(); > this.selectedAmount = item.getSelectedAmount(); > this.setBasePrice(item.getBasePrice()); > this.setDisplayPrice(item.getDisplayPrice()); > @@ -767,6 +813,11 @@ > public void setReservPersons(double reservPersons) { > this.reservPersons = reservPersons; > } > + /** Sets accommodationId using the reservation */ > + public void setAccommodationId(String accommodationMapId,String > accommodationSpotId) { > + this.accommodationMapId = accommodationMapId; > + this.accommodationSpotId = accommodationSpotId; > + } > > /** Sets the quantity for the item and validates the change in > quantity, etc */ > public void setQuantity(double quantity, LocalDispatcher > dispatcher, ShoppingCart cart) throws CartItemModifyException { > @@ -1168,7 +1219,16 @@ > public double getReservPersons() { > return this.reservPersons; > } > - > + > + /** Returns accommodationMapId */ > + public String getAccommodationMapId() { > + return this.accommodationMapId; > + } > + /** Returns accommodationSpotId */ > + public String getAccommodationSpotId() { > + return this.accommodationSpotId; > + } > + > public double getPromoQuantityUsed() { > if (this.getIsPromo()) { > return this.quantity; > @@ -2151,21 +2211,20 @@ > > /** Compares the specified object with this cart item. Defaults > isPromo to false. */ > public boolean equals(String productId, Map > additionalProductFeatureAndAppls, Map attributes, String > prodCatalogId, ProductConfigWrapper configWrapper, String itemType, > ShoppingCart.ShoppingCartItemGroup itemGroup, double selectedAmount) { > - return equals(productId, null, 0.00, 0.00, > additionalProductFeatureAndAppls, attributes, prodCatalogId, > selectedAmount, configWrapper, itemType, itemGroup, false); > + return equals(productId, null, 0.00, 0.00, null, null, > additionalProductFeatureAndAppls, attributes, prodCatalogId, > selectedAmount, configWrapper, itemType, itemGroup, false); > } > - > /** Compares the specified object with this cart item including > rental data. Defaults isPromo to false. */ > public boolean equals(String productId, Timestamp reservStart, > double reservLength, double reservPersons, Map > additionalProductFeatureAndAppls, Map attributes, String > prodCatalogId, ProductConfigWrapper configWrapper, String itemType, > ShoppingCart.ShoppingCartItemGroup itemGroup, double selectedAmount) { > - return equals(productId, reservStart, reservLength, > reservPersons, additionalProductFeatureAndAppls, attributes, > prodCatalogId, selectedAmount, configWrapper, itemType, itemGroup, > false); > + return equals(productId, reservStart, reservLength, > reservPersons, null, null, additionalProductFeatureAndAppls, > attributes, prodCatalogId, selectedAmount, configWrapper, itemType, > itemGroup, false); > } > - > + > /** Compares the specified object with this cart item. Defaults > isPromo to false. */ > public boolean equals(String productId, Map > additionalProductFeatureAndAppls, Map attributes, String > prodCatalogId, double selectedAmount, String itemType, > ShoppingCart.ShoppingCartItemGroup itemGroup, boolean isPromo) { > - return equals(productId, null, 0.00, 0.00, > additionalProductFeatureAndAppls, attributes, prodCatalogId, > selectedAmount, null, itemType, itemGroup, isPromo); > + return equals(productId, null, 0.00, 0.00, null, null, > additionalProductFeatureAndAppls, attributes, prodCatalogId, > selectedAmount, null, itemType, itemGroup, isPromo); > } > > /** Compares the specified object with this cart item. */ > - public boolean equals(String productId, Timestamp reservStart, > double reservLength, double reservPersons, > + public boolean equals(String productId, Timestamp reservStart, > double reservLength, double reservPersons, String > accommodationMapId, String accommodationSpotId, > Map additionalProductFeatureAndAppls, Map attributes, > String prodCatalogId, double selectedAmount, > ProductConfigWrapper configWrapper, String itemType, > ShoppingCart.ShoppingCartItemGroup itemGroup, boolean isPromo) { > if (this.productId == null || productId == null) { > @@ -2199,6 +2258,13 @@ > } > > if (this.reservPersons != reservPersons) { > + return false; > + } > + > + if (this.accommodationMapId != null && ! > this.accommodationMapId.equals(accommodationMapId)) { > + return false; > + } > + if (this.accommodationSpotId != null && ! > this.accommodationSpotId.equals(accommodationSpotId)) { > return false; > } > > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > shoppingcart/ShoppingCartServices.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartServices.java?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartServices.java (original) > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > ShoppingCartServices.java Sun Feb 24 18:22:15 2008 > @@ -324,6 +324,8 @@ > Timestamp reservStart = null; > Double reservLength = null; > Double reservPersons = null; > + String accommodationMapId = null; > + String accommodationSpotId = null; > > GenericValue workEffort = null; > String workEffortId = > orh.getCurrentOrderItemWorkEffort(item); > @@ -338,6 +340,9 @@ > reservStart = > workEffort.getTimestamp("estimatedStartDate"); > reservLength = > OrderReadHelper.getWorkEffortRentalLenght(workEffort); > reservPersons = > workEffort.getDouble("reservPersons"); > + accommodationMapId = > workEffort.getString("accommodationMapId"); > + accommodationSpotId = > workEffort.getString("accommodationSpotId"); > + > } //end of rental data > > //check for AGGREGATED products > @@ -361,7 +366,9 @@ > configWrapper = > ProductConfigWorker.loadProductConfigWrapper(delegator, dispatcher, > configId, productId, productStoreId, prodCatalogId, website, > currency, locale, userLogin); > } > try { > - itemIndex = cart.addItemToEnd(productId, > amount, quantityDbl, null, reservStart, reservLength, reservPersons, > null, null, prodCatalogId, configWrapper, > item.getString("orderItemTypeId"), dispatcher, null, null, > skipInventoryChecks, skipProductChecks); > + > + itemIndex = > cart.addItemToEnd(productId, amount, quantityDbl, null, reservStart, > reservLength, reservPersons,accommodationMapId,accommodationSpotId, > null, null, prodCatalogId, configWrapper, > item.getString("orderItemTypeId"), dispatcher, null, null, > skipInventoryChecks, skipProductChecks); > + > } catch (ItemNotFoundException e) { > Debug.logError(e, module); > return > ServiceUtil.returnError(e.getMessage()); > @@ -613,6 +620,8 @@ > Timestamp reservStart = > item.getTimestamp("reservStart"); > Double reservLength = item.getDouble("reservLength"); > Double reservPersons = > item.getDouble("reservPersons"); > + String accommodationMapId = > item.getString("accommodationMapId"); > + String accommodationSpotId = > item.getString("accommodationSpotId"); > > int itemIndex = -1; > if (item.get("productId") == null) { > @@ -633,7 +642,8 @@ > configWrapper = > ProductConfigWorker.loadProductConfigWrapper(delegator, dispatcher, > item.getString("configId"), productId, productStoreId, null, null, > currency, locale, userLogin); > } > try { > - itemIndex = cart.addItemToEnd(productId, > amount, quantity.doubleValue(), quoteUnitPrice, reservStart, > reservLength, reservPersons, null, null, null, configWrapper, null, > dispatcher, new Boolean(!applyQuoteAdjustments), new > Boolean(quoteUnitPrice.doubleValue() == 0), Boolean.FALSE, > Boolean.FALSE); > + itemIndex = > cart.addItemToEnd(productId, amount, quantity.doubleValue(), > quoteUnitPrice, reservStart, reservLength, > reservPersons,accommodationMapId,accommodationSpotId, null, null, > null, configWrapper, null, dispatcher, new Boolean(! > applyQuoteAdjustments), new Boolean(quoteUnitPrice.doubleValue() == > 0), Boolean.FALSE, Boolean.FALSE); > + > } catch (ItemNotFoundException e) { > Debug.logError(e, module); > return > ServiceUtil.returnError(e.getMessage()); > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > shoppinglist/ShoppingListEvents.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ShoppingListEvents.java?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > ShoppingListEvents.java (original) > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > ShoppingListEvents.java Sun Feb 24 18:22:15 2008 > @@ -147,6 +147,8 @@ > ctx.put("reservStart", item.getReservStart()); > ctx.put("reservLength", new > Double(item.getReservLength())); > ctx.put("reservPersons", new > Double(item.getReservPersons())); > + ctx.put("accommodationMapId", new > Double(item.getAccommodationMapId())); > + ctx.put("accommodationSpotId", new > Double(item.getAccommodationSpotId())); > if (item.getConfigWrapper() != null) { > ctx.put("configId", > item.getConfigWrapper().getConfigId()); > } > @@ -258,6 +260,8 @@ > Timestamp reservStart = > shoppingListItem.getTimestamp("reservStart"); > Double reservLength = > shoppingListItem.getDouble("reservLength"); > Double reservPersons = > shoppingListItem.getDouble("reservPersons"); > + String accommodationMapId = > shoppingListItem.getString("accommodationMapId"); > + String accommodationSpotId = > shoppingListItem.getString("accommodationSpotId"); > String configId = shoppingListItem.getString("configId"); > try { > String listId = > shoppingListItem.getString("shoppingListId"); > @@ -283,9 +287,9 @@ > > // i cannot get the addOrDecrease function to accept > a null reservStart field: i get a null pointer exception a null > constant works.... > if (reservStart == null) { > - cart.addOrIncreaseItem(productId, null, > quantity.doubleValue(), null, null, null, null, null, null, > attributes, prodCatalogId, configWrapper, null, null, null, > dispatcher); > - } else { > - cart.addOrIncreaseItem(productId, null, > quantity.doubleValue(), reservStart, reservLength, reservPersons, > null, null, null, attributes, prodCatalogId, configWrapper, null, > null, null, dispatcher); > + cart.addOrIncreaseItem(productId, null, > quantity.doubleValue(), null, null, null, null, null, null, > attributes, prodCatalogId, configWrapper, null, null, null, > dispatcher); > + }else{ > + cart.addOrIncreaseItem(productId, null, > quantity.doubleValue(), reservStart, reservLength, > reservPersons,accommodationMapId,accommodationSpotId, null, null, > null, attributes, prodCatalogId, configWrapper, null, null, null, > dispatcher); > } > Map messageMap = UtilMisc.toMap("productId", > productId); > errMsg = > UtilProperties > .getMessage(resource,"shoppinglistevents.added_product_to_cart", > messageMap, cart.getLocale()); > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > shoppinglist/ShoppingListServices.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ShoppingListServices.java?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > ShoppingListServices.java (original) > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > ShoppingListServices.java Sun Feb 24 18:22:15 2008 > @@ -475,6 +475,9 @@ > Timestamp reservStart = > shoppingListItem.getTimestamp("reservStart"); > Double reservLength = null; > String configId = > shoppingListItem.getString("configId"); > + String accommodationMapId = > shoppingListItem.getString("accommodationMapId"); > + String accommodationSpotId = > shoppingListItem.getString("accommodationSpotId"); > + > if (shoppingListItem.get("reservLength") != > null) { > reservLength = > shoppingListItem.getDouble("reservLength"); > } > @@ -482,6 +485,12 @@ > if (shoppingListItem.get("reservPersons") != > null) { > reservPersons = > shoppingListItem.getDouble("reservPersons"); > } > + if (shoppingListItem.get("accommodationMapId") ! > = null) { > + accommodationMapId = > shoppingListItem.getString("accommodationMapId"); > + } > + if > (shoppingListItem.get("accommodationSpotId") != null) { > + accommodationSpotId = > shoppingListItem.getString("accommodationSpotId"); > + } > if (UtilValidate.isNotEmpty(productId) && > quantity != null) { > > if (UtilValidate.isNotEmpty(configId)) { > @@ -493,7 +502,7 @@ > Map attributes = > UtilMisc.toMap("shoppingListId", listId, "shoppingListItemSeqId", > itemId); > > try { > - listCart.addOrIncreaseItem(productId, > null, quantity.doubleValue(), reservStart, reservLength, > reservPersons, null, null, null, attributes, null, configWrapper, > null, null, null, dispatcher); > + listCart.addOrIncreaseItem(productId, > null, quantity.doubleValue(), reservStart, reservLength, > reservPersons,accommodationMapId,accommodationSpotId, null, null, > null, attributes, null, configWrapper, null, null, null, dispatcher); > } catch (CartItemModifyException e) { > Debug.logError(e, "Unable to add product > to List Cart - " + productId, module); > } catch (ItemNotFoundException e) { > > Modified: ofbiz/trunk/applications/workeffort/entitydef/ > entitymodel.xml > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml?rev=630718&r1=630717&r2=630718&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml > (original) > +++ ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml > Sun Feb 24 18:22:15 2008 > @@ -278,6 +278,8 @@ > <field name="reservPersons" type="floating- > point"><description>the number of persons renting the attached > asset</description></field> > <field name="reserv2ndPPPerc" type="floating- > point"><description>reservationSecondPersonPricePercentage: > percentage of the end price for the 2nd person renting this asset > connected to the workEffort</description></field> > <field name="reservNthPPPerc" type="floating- > point"><description>reservationNthPersonPricePercentage: percentage > of the end price for the Nth (2+) person renting this asset > connected to the workEffort</description></field> > + <field name="accommodationMapId" type="id"/> > + <field name="accommodationSpotId" type="id"/> > <field name="revisionNumber" type="numeric"></field> > <field name="createdDate" type="date-time"></field> > <field name="createdByUserLogin" type="id-vlong"></field> > @@ -340,6 +342,12 @@ > <relation type="one" fk-name="WK_EFFRT_CUS_MET" rel-entity- > name="CustomMethod"> > <key-map field-name="estimateCalcMethod" rel-field- > name="customMethodId"/> > </relation> > + <relation type="one" fk-name="WK_EFFRT_ACC_MAP" rel-entity- > name="AccommodationMap"> > + <key-map field-name="accommodationMapId"/> > + </relation> > + <relation type="one" fk-name="WK_EFFRT_ACC_SPOT" rel-entity- > name="AccommodationSpot"> > + <key-map field-name="accommodationSpotId"/> > + </relation> > </entity> > <entity entity-name="WorkEffortAssoc" > package-name="org.ofbiz.workeffort.workeffort" > > |
Hi David,
sure we can do that, however this patch was available for a long time in Jira for review. Let me see what i can do, i am pretty busy so this can take some time... Regards, Hans On Sun, 2008-02-24 at 19:57 -0700, David E Jones wrote: > We've been using the pattern of passing parameters into new cart items > through factory and constructor methods for too long, and it's past > the point where it's a bit crazy! > > Before this becomes a dependency that is difficult to change for these > new parameters, could we change this so that it does not change those > method signatures (ie doesn't add the parameters) but instead calls > set methods on the cart object AFTER it is created? > > -David > > > On Feb 24, 2008, at 7:22 PM, [hidden email] wrote: > > > Author: hansbak > > Date: Sun Feb 24 18:22:15 2008 > > New Revision: 630718 > > > > URL: http://svn.apache.org/viewvc?rev=630718&view=rev > > Log: > > introduction of new reservation entities: OFBIZ-1590 > > > > Modified: > > ofbiz/trunk/applications/accounting/entitydef/entitygroup.xml > > ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml > > ofbiz/trunk/applications/order/src/org/ofbiz/order/order/ > > OrderServices.java > > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCart.java > > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartEvents.java > > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartHelper.java > > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartItem.java > > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartServices.java > > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > > ShoppingListEvents.java > > ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > > ShoppingListServices.java > > ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml > > > > Modified: ofbiz/trunk/applications/accounting/entitydef/ > > entitygroup.xml > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitygroup.xml?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/accounting/entitydef/entitygroup.xml > > (original) > > +++ ofbiz/trunk/applications/accounting/entitydef/entitygroup.xml > > Sun Feb 24 18:22:15 2008 > > @@ -83,6 +83,11 @@ > > <entity-group group="org.ofbiz" entity="FixedAssetType" /> > > <entity-group group="org.ofbiz" entity="FixedAssetTypeAttr" /> > > <entity-group group="org.ofbiz" > > entity="PartyFixedAssetAssignment" /> > > + <entity-group group="org.ofbiz" entity="AccommodationClass"/> > > + <entity-group group="org.ofbiz" entity="AccommodationMap"/> > > + <entity-group group="org.ofbiz" entity="AccommodationSpot"/> > > + <entity-group group="org.ofbiz" entity="AccommodationMapType"/> > > + > > > > <!-- ========================================================= --> > > <!-- org.ofbiz.accounting.invoice --> > > > > Modified: ofbiz/trunk/applications/accounting/entitydef/ > > entitymodel.xml > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml > > (original) > > +++ ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml > > Sun Feb 24 18:22:15 2008 > > @@ -954,6 +954,62 @@ > > </relation> > > </entity> > > > > + <entity entity-name="AccommodationClass" > > + package-name="org.ofbiz.accounting.fixedasset" > > + title="Accommodation Class"> > > + <field name="accommodationClassId" type="id-ne"></field> > > + <field name="parentClassId" type="id-ne"></field> > > + <field name="description" type="description"></field> > > + <prim-key field="accommodationClassId"/> > > + <relation type="one" fk-name="ACCOMM_CLASS_PAR" title="Parent" > > rel-entity-name="AccommodationClass"> > > + <key-map field-name="parentClassId" rel-field- > > name="accommodationClassId"/> > > + </relation> > > + </entity> > > + <entity entity-name="AccommodationSpot" > > + package-name="org.ofbiz.order.reservations" > > + title="Accommodation Spot"> > > + <field name="accommodationSpotId" type="id-ne"></field> > > + <field name="accommodationClassId" type="id"></field> > > + <field name="fixedAssetId" type="id"></field> > > + <field name="numberOfSpaces" type="numeric"></field> > > + <field name="description" type="description"></field> > > + <prim-key field="accommodationSpotId"/> > > + <relation type="one" fk-name="ACCOM_CLASS" rel-entity- > > name="AccommodationClass"> > > + <key-map field-name="accommodationClassId"/> > > + </relation> > > + <relation type="one" fk-name="SPOT_FA" rel-entity- > > name="FixedAsset"> > > + <key-map field-name="fixedAssetId"/> > > + </relation> > > + </entity> > > + > > + <entity entity-name="AccommodationMap" > > + package-name="org.ofbiz.accounting.fixedasset" > > + title="Accommodation Map"> > > + <field name="accommodationMapId" type="id-ne"></field> > > + <field name="accommodationClassId" type="id-ne"></field> > > + <field name="fixedAssetId" type="id"></field> > > + <field name="accommodationMapTypeId" type="id"></field> > > + <field name="numberOfSpaces" type="numeric"></field> > > + <prim-key field="accommodationMapId"/> > > + <relation type="one" fk-name="ACMD_MAP_CLASS" rel-entity- > > name="AccommodationClass"> > > + <key-map field-name="accommodationClassId"/> > > + </relation> > > + <relation type="one" fk-name="ACMD_MAP_FA" rel-entity- > > name="FixedAsset"> > > + <key-map field-name="fixedAssetId"/> > > + </relation> > > + <relation type="one" fk-name="ACMD_MAP_TYPE" rel-entity- > > name="AccommodationMapType"> > > + <key-map field-name="accommodationMapTypeId"/> > > + </relation> > > + </entity> > > + > > + <entity entity-name="AccommodationMapType" > > + package-name="org.ofbiz.accounting.fixedasset" > > + title="Accommodation Map Type"> > > + <field name="accommodationMapTypeId" type="id-ne"></field> > > + <field name="description" type="description"></field> > > + <prim-key field="accommodationMapTypeId"/> > > + </entity> > > + > > <!-- ========================================================= --> > > <!-- org.ofbiz.accounting.invoice --> > > <!-- ========================================================= --> > > > > 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=630718&r1=630717&r2=630718&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 Sun Feb 24 18:22:15 2008 > > @@ -369,13 +369,15 @@ > > errorMessages.add(excMsg); > > return > > ServiceUtil > > .returnError > > (UtilProperties > > .getMessage > > (resource_error > > ,"OrderCouldNotFindRelatedFixedAssetForTheProduct > > ",UtilMisc.toMap("productId",orderItem.getString("productId")), > > locale )); > > } > > + > > if (selFixedAssetProduct != null && > > selFixedAssetProduct.size() > 0) { > > Iterator firstOne = > > selFixedAssetProduct.iterator(); > > if(firstOne.hasNext()) { > > GenericValue fixedAssetProduct = > > delegator.makeValue("FixedAssetProduct"); > > - fixedAssetProduct = (GenericValue) > > firstOne.next(); > > - > > workEffort.set("fixedAssetId",fixedAssetProduct.get("fixedAssetId")); > > + fixedAssetProduct = (GenericValue) > > firstOne.next(); > > + > > workEffort.set("fixedAssetId",fixedAssetProduct.get("fixedAssetId")); > > > > workEffort.set("quantityToProduce",orderItem.get("quantity")); // > > have quantity easy available later... > > + > > workEffort.set("createdByUserLogin", userLogin.get("userLoginId")); > > } > > } > > break; // item found, so go to next > > orderitem. > > > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > > shoppingcart/ShoppingCart.java > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCart.java (original) > > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCart.java Sun Feb 24 18:22:15 2008 > > @@ -448,6 +448,17 @@ > > public int addOrIncreaseItem(String productId, Double > > selectedAmountDbl, double quantity, Timestamp reservStart, Double > > reservLengthDbl, Double reservPersonsDbl, > > Timestamp shipBeforeDate, Timestamp shipAfterDate, Map > > features, Map attributes, String prodCatalogId, > > ProductConfigWrapper configWrapper, String itemType, > > String itemGroupNumber, String parentProductId, LocalDispatcher > > dispatcher) throws CartItemModifyException, ItemNotFoundException { > > + > > + return > > addOrIncreaseItem > > (productId > > ,selectedAmountDbl > > ,quantity,reservStart,reservLengthDbl,reservPersonsDbl, > > + > > null > > ,null,shipBeforeDate,shipAfterDate,features,attributes,prodCatalogId, > > + > > configWrapper,itemType,itemGroupNumber,parentProductId,dispatcher); > > + } > > + > > + /** add rental (with accommodation) item to cart */ > > + public int addOrIncreaseItem(String productId, Double > > selectedAmountDbl, double quantity, Timestamp reservStart, Double > > reservLengthDbl, Double reservPersonsDbl, > > + String accommodationMapId, String accommodationSpotId, > > + Timestamp shipBeforeDate, Timestamp shipAfterDate, Map > > features, Map attributes, String prodCatalogId, > > + ProductConfigWrapper configWrapper, String itemType, > > String itemGroupNumber, String parentProductId, LocalDispatcher > > dispatcher) throws CartItemModifyException, ItemNotFoundException { > > if (isReadOnlyCart()) { > > throw new CartItemModifyException("Cart items cannot be > > changed"); > > } > > @@ -463,7 +474,7 @@ > > ShoppingCartItem sci = (ShoppingCartItem) > > cartLines.get(i); > > > > > > - if (sci.equals(productId, reservStart, reservLength, > > reservPersons, features, attributes, prodCatalogId, configWrapper, > > itemType, itemGroup, selectedAmount)) { > > + if (sci.equals(productId, reservStart, reservLength, > > reservPersons, accommodationMapId, accommodationSpotId, features, > > attributes, prodCatalogId,selectedAmount, configWrapper, itemType, > > itemGroup, false)) { > > double newQuantity = sci.getQuantity() + quantity; > > > > if (Debug.verboseOn()) Debug.logVerbose("Found a > > match for id " + productId + " on line " + i + ", updating quantity > > to " + newQuantity, module); > > @@ -492,7 +503,7 @@ > > } > > } else { > > return this.addItem(0, ShoppingCartItem.makeItem(new > > Integer(0), productId, selectedAmountDbl, quantity, null, > > - reservStart, reservLengthDbl, reservPersonsDbl, > > shipBeforeDate, shipAfterDate, > > + reservStart, reservLengthDbl, reservPersonsDbl, > > accommodationMapId, accommodationSpotId, shipBeforeDate, > > shipAfterDate, > > features, attributes, prodCatalogId, > > configWrapper, itemType, itemGroup, dispatcher, > > this, Boolean.TRUE, Boolean.TRUE, > > parentProductId, Boolean.FALSE, Boolean.FALSE)); > > } > > @@ -556,6 +567,21 @@ > > public int addItemToEnd(String productId, Double amount, double > > quantity, Double unitPrice, Timestamp reservStart, Double > > reservLengthDbl, Double reservPersonsDbl, HashMap features, HashMap > > attributes, String prodCatalogId, ProductConfigWrapper > > configWrapper, String itemType, LocalDispatcher dispatcher, Boolean > > triggerExternalOps, Boolean triggerPriceRules, Boolean > > skipInventoryChecks, Boolean skipProductChecks) throws > > CartItemModifyException, ItemNotFoundException { > > return addItemToEnd(ShoppingCartItem.makeItem(null, > > productId, amount, quantity, unitPrice, reservStart, > > reservLengthDbl, reservPersonsDbl, null, null, features, attributes, > > prodCatalogId, configWrapper, itemType, null, dispatcher, this, > > triggerExternalOps, triggerPriceRules, null, skipInventoryChecks, > > skipProductChecks)); > > } > > + > > + /** Add an accommodation(rental )item to the shopping cart. */ > > + public int addItemToEnd(String productId, Double amount, double > > quantity, Double unitPrice, Timestamp reservStart, Double > > reservLengthDbl, Double reservPersonsDbl, String accommodationMapId, > > String accommodationSpotId, HashMap features, HashMap attributes, > > String prodCatalogId, String itemType, LocalDispatcher dispatcher, > > Boolean triggerExternalOps, Boolean triggerPriceRules) throws > > CartItemModifyException, ItemNotFoundException { > > + return addItemToEnd(ShoppingCartItem.makeItem(null, > > productId, amount, quantity, unitPrice, reservStart, > > reservLengthDbl, reservPersonsDbl, accommodationMapId, > > accommodationSpotId, null, null, features, attributes, > > prodCatalogId, null, itemType, null, dispatcher, this, > > triggerExternalOps, triggerPriceRules, null, Boolean.FALSE, > > Boolean.FALSE)); > > + } > > + > > + /** Add an accommodation(rental)item to the shopping cart. */ > > + public int addItemToEnd(String productId, Double amount, double > > quantity, Double unitPrice, Timestamp reservStart, Double > > reservLengthDbl, Double reservPersonsDbl,String accommodationMapId, > > String accommodationSpotId, HashMap features, HashMap attributes, > > String prodCatalogId, String itemType, LocalDispatcher dispatcher, > > Boolean triggerExternalOps, Boolean triggerPriceRules, Boolean > > skipInventoryChecks, Boolean skipProductChecks) throws > > CartItemModifyException, ItemNotFoundException { > > + return addItemToEnd(ShoppingCartItem.makeItem(null, > > productId, amount, quantity, unitPrice, reservStart, > > reservLengthDbl, reservPersonsDbl, accommodationMapId, > > accommodationSpotId, null, null, features, attributes, > > prodCatalogId, null, itemType, null, dispatcher, this, > > triggerExternalOps, triggerPriceRules, null, skipInventoryChecks, > > skipProductChecks)); > > + } > > + > > + /** Add an accommodation(rental/aggregated)item to the shopping > > cart. */ > > + public int addItemToEnd(String productId, Double amount, double > > quantity, Double unitPrice, Timestamp reservStart, Double > > reservLengthDbl, Double reservPersonsDbl,String accommodationMapId, > > String accommodationSpotId, HashMap features, HashMap attributes, > > String prodCatalogId, ProductConfigWrapper configWrapper, String > > itemType, LocalDispatcher dispatcher, Boolean triggerExternalOps, > > Boolean triggerPriceRules, Boolean skipInventoryChecks, Boolean > > skipProductChecks) throws CartItemModifyException, > > ItemNotFoundException { > > + return addItemToEnd(ShoppingCartItem.makeItem(null, > > productId, amount, quantity, unitPrice, reservStart, > > reservLengthDbl, reservPersonsDbl, accommodationMapId, > > accommodationSpotId, null, null, features, attributes, > > prodCatalogId, configWrapper, itemType, null, dispatcher, this, > > triggerExternalOps, triggerPriceRules, null, skipInventoryChecks, > > skipProductChecks)); > > + } > > > > /** Add an item to the shopping cart. */ > > public int addItemToEnd(String productId, Double amount, double > > quantity, Double unitPrice, HashMap features, HashMap attributes, > > String prodCatalogId, String itemType, LocalDispatcher dispatcher, > > Boolean triggerExternalOps, Boolean triggerPriceRules, Boolean > > skipInventoryChecks, Boolean skipProductChecks) throws > > CartItemModifyException, ItemNotFoundException { > > @@ -3407,7 +3433,8 @@ > > workEffort.set("reservPersons",new > > Double(item.getReservPersons())); > > workEffort.set("reserv2ndPPPerc", new > > Double(item.getReserv2ndPPPerc())); > > workEffort.set("reservNthPPPerc", new > > Double(item.getReservNthPPPerc())); > > - > > + workEffort.set("accommodationMapId", > > item.getAccommodationMapId()); > > + > > workEffort.set("accommodationSpotId",item.getAccommodationSpotId()); > > allWorkEfforts.add(workEffort); > > } > > } > > > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > > shoppingcart/ShoppingCartEvents.java > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartEvents.java (original) > > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartEvents.java Sun Feb 24 18:22:15 2008 > > @@ -133,6 +133,8 @@ > > Double reservLength = null; > > String reservPersonsStr = null; > > Double reservPersons = null; > > + String accommodationMapId = null; > > + String accommodationSpotId = null; > > String shipBeforeDateStr = null; > > String shipAfterDateStr = null; > > java.sql.Timestamp shipBeforeDate = null; > > @@ -321,6 +323,13 @@ > > request.setAttribute("_EVENT_MESSAGE_", > > UtilProperties.getMessage(resource, > > "cart.addToCart.enterBookingInforamtionBeforeAddingToCart", locale)); > > return "product"; > > } > > + > > + //check accommodation for reservations > > + if((paramMap.containsKey("accommodationMapId")) && > > (paramMap.containsKey("accommodationSpotId"))){ > > + accommodationMapId = (String) > > paramMap.remove("accommodationMapId"); > > + accommodationSpotId = (String) > > paramMap.remove("accommodationSpotId"); > > + > > + } > > > > } > > > > @@ -492,6 +501,7 @@ > > // Translate the parameters and add to the cart > > result = cartHelper.addToCart(catalogId, shoppingListId, > > shoppingListItemSeqId, productId, productCategoryId, > > itemType, itemDescription, price, amount, quantity, > > reservStart, reservLength, reservPersons, > > + accommodationMapId, accommodationSpotId, > > shipBeforeDate, shipAfterDate, configWrapper, > > itemGroupNumber, paramMap, parentProductId); > > controlDirective = processResult(result, request); > > > > > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > > shoppingcart/ShoppingCartHelper.java > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartHelper.java?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartHelper.java (original) > > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartHelper.java Sun Feb 24 18:22:15 2008 > > @@ -103,6 +103,20 @@ > > java.sql.Timestamp reservStart, Double reservLength, > > Double reservPersons, > > java.sql.Timestamp shipBeforeDate, java.sql.Timestamp > > shipAfterDate, > > ProductConfigWrapper configWrapper, String > > itemGroupNumber, Map context, String parentProductId) { > > + > > + return > > addToCart(catalogId,shoppingListId,shoppingListItemSeqId,productId, > > + > > productCategoryId,itemType,itemDescription,price,amount,quantity, > > + > > reservStart > > ,reservLength,reservPersons,null,null,shipBeforeDate,shipAfterDate, > > + > > configWrapper,itemGroupNumber,context,parentProductId); > > + } > > + > > + /** Event to add an item to the shopping cart with > > accommodation. */ > > + public Map addToCart(String catalogId, String shoppingListId, > > String shoppingListItemSeqId, String productId, > > + String productCategoryId, String itemType, String > > itemDescription, > > + Double price, Double amount, double quantity, > > + java.sql.Timestamp reservStart, Double reservLength, > > Double reservPersons, String accommodationMapId,String > > accommodationSpotId, > > + java.sql.Timestamp shipBeforeDate, java.sql.Timestamp > > shipAfterDate, > > + ProductConfigWrapper configWrapper, String > > itemGroupNumber, Map context, String parentProductId) { > > Map result = null; > > Map attributes = null; > > String pProductId = null; > > @@ -215,9 +229,11 @@ > > try { > > int itemId = -1; > > if (productId != null) { > > - itemId = cart.addOrIncreaseItem(productId, amount, > > quantity, reservStart, reservLength, > > - reservPersons, > > shipBeforeDate, shipAfterDate, additionalFeaturesMap, attributes, > > + > > + itemId = cart.addOrIncreaseItem(productId, > > amount, quantity, reservStart, reservLength, > > + reservPersons, > > accommodationMapId, accommodationSpotId, shipBeforeDate, > > shipAfterDate, additionalFeaturesMap, attributes, > > catalogId, > > configWrapper, itemType, itemGroupNumber, pProductId, dispatcher); > > + > > } else { > > itemId = cart.addNonProductItem(itemType, > > itemDescription, productCategoryId, price, quantity, attributes, > > catalogId, itemGroupNumber, dispatcher); > > } > > @@ -666,14 +682,16 @@ > > } else if > > (parameterName.toUpperCase().startsWith("DESCRIPTION")) { > > itemDescription = quantString; // the > > quantString is actually the description if the field name starts > > with DESCRIPTION > > } else if > > (parameterName.startsWith("reservStart")) { > > - // should have format: yyyy-mm-dd > > hh:mm:ss.fffffffff > > - quantString += " 00:00:00.000000000"; > > - if (item != null) { > > - Timestamp reservStart = > > Timestamp.valueOf(quantString); > > - item.setReservStart(reservStart); > > - } > > + if (quantString.length() ==0){ > > + // should have format: yyyy-mm-dd > > hh:mm:ss.fffffffff > > + quantString += " 00:00:00.000000000"; > > + } > > + if (item != null) { > > + Timestamp reservStart = > > Timestamp.valueOf(quantString); > > + item.setReservStart(reservStart); > > + } > > } else if > > (parameterName.startsWith("reservLength")) { > > - if (item != null) { > > + if (item != null) { > > double reservLength = > > nf.parse(quantString).doubleValue(); > > item.setReservLength(reservLength); > > } > > > > 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=630718&r1=630717&r2=630718&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 Sun Feb 24 18:22:15 2008 > > @@ -96,6 +96,8 @@ > > private double reservLength = 0; > > /** for reservations: number of persons using */ > > private double reservPersons = 0; > > + private String accommodationMapId = null; > > + private String accommodationSpotId = null; > > private double quantity = 0.0; > > private double basePrice = 0.0; > > private Double displayPrice = null; > > @@ -282,6 +284,25 @@ > > Map additionalProductFeatureAndAppls, Map attributes, > > String prodCatalogId, ProductConfigWrapper configWrapper, > > String itemType, ShoppingCart.ShoppingCartItemGroup > > itemGroup, LocalDispatcher dispatcher, ShoppingCart cart, Boolean > > triggerExternalOpsBool, Boolean triggerPriceRulesBool, String > > parentProductId, Boolean skipInventoryChecks, Boolean > > skipProductChecks) > > throws CartItemModifyException, ItemNotFoundException { > > + > > + return > > makeItem > > (cartLocation,productId,selectedAmountDbl,quantity,unitPriceDbl, > > + > > reservStart > > ,reservLengthDbl > > ,reservPersonsDbl,null,null,shipBeforeDate,shipAfterDate, > > + > > additionalProductFeatureAndAppls > > ,attributes,prodCatalogId,configWrapper, > > + > > itemType > > ,itemGroup > > ,dispatcher,cart,triggerExternalOpsBool,triggerPriceRulesBool, > > + > > parentProductId,skipInventoryChecks,skipProductChecks); > > + > > + } > > + > > + /** > > + * Makes a ShoppingCartItem and adds it to the cart. > > + * @param accommodationMapId Optional. reservations add into > > workeffort > > + * @param accommodationSpotId Optional. reservations add into > > workeffort > > + */ > > + public static ShoppingCartItem makeItem(Integer cartLocation, > > String productId, Double selectedAmountDbl, double quantity, Double > > unitPriceDbl, > > + Timestamp reservStart, Double reservLengthDbl, Double > > reservPersonsDbl,String accommodationMapId,String > > accommodationSpotId, Timestamp shipBeforeDate, Timestamp > > shipAfterDate, > > + Map additionalProductFeatureAndAppls, Map attributes, > > String prodCatalogId, ProductConfigWrapper configWrapper, > > + String itemType, ShoppingCart.ShoppingCartItemGroup > > itemGroup, LocalDispatcher dispatcher, ShoppingCart cart, Boolean > > triggerExternalOpsBool, Boolean triggerPriceRulesBool, String > > parentProductId, Boolean skipInventoryChecks, Boolean > > skipProductChecks) > > + throws CartItemModifyException, ItemNotFoundException { > > GenericDelegator delegator = cart.getDelegator(); > > GenericValue product = null; > > GenericValue parentProduct = null; > > @@ -322,7 +343,7 @@ > > } > > } > > return makeItem(cartLocation, product, selectedAmountDbl, > > quantity, unitPriceDbl, > > - reservStart, reservLengthDbl, reservPersonsDbl, > > shipBeforeDate, shipAfterDate, > > + reservStart, reservLengthDbl, reservPersonsDbl, > > accommodationMapId, accommodationSpotId, shipBeforeDate, > > shipAfterDate, > > additionalProductFeatureAndAppls, attributes, > > prodCatalogId, configWrapper, > > itemType, itemGroup, dispatcher, cart, > > triggerExternalOpsBool, triggerPriceRulesBool, parentProduct, > > skipInventoryChecks, skipProductChecks); > > } > > @@ -362,6 +383,25 @@ > > String prodCatalogId, ProductConfigWrapper > > configWrapper, String itemType, ShoppingCart.ShoppingCartItemGroup > > itemGroup, LocalDispatcher dispatcher, > > ShoppingCart cart, Boolean triggerExternalOpsBool, > > Boolean triggerPriceRulesBool, GenericValue parentProduct, Boolean > > skipInventoryChecks, Boolean skipProductChecks) throws > > CartItemModifyException { > > > > + return makeItem(cartLocation,product,selectedAmountDbl, > > + > > quantity,unitPriceDbl,reservStart,reservLengthDbl,reservPersonsDbl, > > + > > null > > ,null > > ,shipBeforeDate > > ,shipAfterDate,additionalProductFeatureAndAppls,attributes, > > + > > prodCatalogId,configWrapper,itemType,itemGroup,dispatcher,cart, > > + > > triggerExternalOpsBool > > ,triggerPriceRulesBool > > ,parentProduct,skipInventoryChecks,skipProductChecks); > > + } > > + > > + /** > > + * Makes a ShoppingCartItem and adds it to the cart. > > + * @param accommodationMapId Optional. reservations add into > > workeffort > > + * @param accommodationSpotId Optional. reservations add into > > workeffort > > + */ > > + public static ShoppingCartItem makeItem(Integer cartLocation, > > GenericValue product, Double selectedAmountDbl, > > + double quantity, Double unitPriceDbl, Timestamp > > reservStart, Double reservLengthDbl, Double reservPersonsDbl, > > + String accommodationMapId,String accommodationSpotId, > > + Timestamp shipBeforeDate, Timestamp shipAfterDate, Map > > additionalProductFeatureAndAppls, Map attributes, > > + String prodCatalogId, ProductConfigWrapper > > configWrapper, String itemType, ShoppingCart.ShoppingCartItemGroup > > itemGroup, LocalDispatcher dispatcher, > > + ShoppingCart cart, Boolean triggerExternalOpsBool, > > Boolean triggerPriceRulesBool, GenericValue parentProduct, Boolean > > skipInventoryChecks, Boolean skipProductChecks) throws > > CartItemModifyException { > > + > > ShoppingCartItem newItem = new ShoppingCartItem(product, > > additionalProductFeatureAndAppls, attributes, prodCatalogId, > > configWrapper, cart.getLocale(), itemType, itemGroup, parentProduct); > > > > double selectedAmount = selectedAmountDbl == null ? 0.0 : > > selectedAmountDbl.doubleValue(); > > @@ -468,7 +508,11 @@ > > > > if (product.get("reservNthPPPerc") != null) > > > > newItem > > .setReservNthPPPerc > > (product.getDouble("reservNthPPPerc").doubleValue()); > > - > > + > > + if ((accommodationMapId != null) && > > (accommodationSpotId != null)) { > > + > > newItem.setAccommodationId(accommodationMapId,accommodationSpotId); > > + } > > + > > // check to see if the related fixed asset is available > > for rent > > String isAvailable = > > checkAvailability(product.getString("productId"), quantity, > > reservStart, reservLength, cart); > > if(isAvailable.compareTo("OK") != 0) { > > @@ -594,6 +638,8 @@ > > this.reservStart = item.getReservStart(); > > this.reservLength = item.getReservLength(); > > this.reservPersons = item.getReservPersons(); > > + this.accommodationMapId = item.getAccommodationMapId(); > > + this.accommodationSpotId = item.getAccommodationSpotId(); > > this.selectedAmount = item.getSelectedAmount(); > > this.setBasePrice(item.getBasePrice()); > > this.setDisplayPrice(item.getDisplayPrice()); > > @@ -767,6 +813,11 @@ > > public void setReservPersons(double reservPersons) { > > this.reservPersons = reservPersons; > > } > > + /** Sets accommodationId using the reservation */ > > + public void setAccommodationId(String accommodationMapId,String > > accommodationSpotId) { > > + this.accommodationMapId = accommodationMapId; > > + this.accommodationSpotId = accommodationSpotId; > > + } > > > > /** Sets the quantity for the item and validates the change in > > quantity, etc */ > > public void setQuantity(double quantity, LocalDispatcher > > dispatcher, ShoppingCart cart) throws CartItemModifyException { > > @@ -1168,7 +1219,16 @@ > > public double getReservPersons() { > > return this.reservPersons; > > } > > - > > + > > + /** Returns accommodationMapId */ > > + public String getAccommodationMapId() { > > + return this.accommodationMapId; > > + } > > + /** Returns accommodationSpotId */ > > + public String getAccommodationSpotId() { > > + return this.accommodationSpotId; > > + } > > + > > public double getPromoQuantityUsed() { > > if (this.getIsPromo()) { > > return this.quantity; > > @@ -2151,21 +2211,20 @@ > > > > /** Compares the specified object with this cart item. Defaults > > isPromo to false. */ > > public boolean equals(String productId, Map > > additionalProductFeatureAndAppls, Map attributes, String > > prodCatalogId, ProductConfigWrapper configWrapper, String itemType, > > ShoppingCart.ShoppingCartItemGroup itemGroup, double selectedAmount) { > > - return equals(productId, null, 0.00, 0.00, > > additionalProductFeatureAndAppls, attributes, prodCatalogId, > > selectedAmount, configWrapper, itemType, itemGroup, false); > > + return equals(productId, null, 0.00, 0.00, null, null, > > additionalProductFeatureAndAppls, attributes, prodCatalogId, > > selectedAmount, configWrapper, itemType, itemGroup, false); > > } > > - > > /** Compares the specified object with this cart item including > > rental data. Defaults isPromo to false. */ > > public boolean equals(String productId, Timestamp reservStart, > > double reservLength, double reservPersons, Map > > additionalProductFeatureAndAppls, Map attributes, String > > prodCatalogId, ProductConfigWrapper configWrapper, String itemType, > > ShoppingCart.ShoppingCartItemGroup itemGroup, double selectedAmount) { > > - return equals(productId, reservStart, reservLength, > > reservPersons, additionalProductFeatureAndAppls, attributes, > > prodCatalogId, selectedAmount, configWrapper, itemType, itemGroup, > > false); > > + return equals(productId, reservStart, reservLength, > > reservPersons, null, null, additionalProductFeatureAndAppls, > > attributes, prodCatalogId, selectedAmount, configWrapper, itemType, > > itemGroup, false); > > } > > - > > + > > /** Compares the specified object with this cart item. Defaults > > isPromo to false. */ > > public boolean equals(String productId, Map > > additionalProductFeatureAndAppls, Map attributes, String > > prodCatalogId, double selectedAmount, String itemType, > > ShoppingCart.ShoppingCartItemGroup itemGroup, boolean isPromo) { > > - return equals(productId, null, 0.00, 0.00, > > additionalProductFeatureAndAppls, attributes, prodCatalogId, > > selectedAmount, null, itemType, itemGroup, isPromo); > > + return equals(productId, null, 0.00, 0.00, null, null, > > additionalProductFeatureAndAppls, attributes, prodCatalogId, > > selectedAmount, null, itemType, itemGroup, isPromo); > > } > > > > /** Compares the specified object with this cart item. */ > > - public boolean equals(String productId, Timestamp reservStart, > > double reservLength, double reservPersons, > > + public boolean equals(String productId, Timestamp reservStart, > > double reservLength, double reservPersons, String > > accommodationMapId, String accommodationSpotId, > > Map additionalProductFeatureAndAppls, Map attributes, > > String prodCatalogId, double selectedAmount, > > ProductConfigWrapper configWrapper, String itemType, > > ShoppingCart.ShoppingCartItemGroup itemGroup, boolean isPromo) { > > if (this.productId == null || productId == null) { > > @@ -2199,6 +2258,13 @@ > > } > > > > if (this.reservPersons != reservPersons) { > > + return false; > > + } > > + > > + if (this.accommodationMapId != null && ! > > this.accommodationMapId.equals(accommodationMapId)) { > > + return false; > > + } > > + if (this.accommodationSpotId != null && ! > > this.accommodationSpotId.equals(accommodationSpotId)) { > > return false; > > } > > > > > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > > shoppingcart/ShoppingCartServices.java > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartServices.java?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartServices.java (original) > > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ > > ShoppingCartServices.java Sun Feb 24 18:22:15 2008 > > @@ -324,6 +324,8 @@ > > Timestamp reservStart = null; > > Double reservLength = null; > > Double reservPersons = null; > > + String accommodationMapId = null; > > + String accommodationSpotId = null; > > > > GenericValue workEffort = null; > > String workEffortId = > > orh.getCurrentOrderItemWorkEffort(item); > > @@ -338,6 +340,9 @@ > > reservStart = > > workEffort.getTimestamp("estimatedStartDate"); > > reservLength = > > OrderReadHelper.getWorkEffortRentalLenght(workEffort); > > reservPersons = > > workEffort.getDouble("reservPersons"); > > + accommodationMapId = > > workEffort.getString("accommodationMapId"); > > + accommodationSpotId = > > workEffort.getString("accommodationSpotId"); > > + > > } //end of rental data > > > > //check for AGGREGATED products > > @@ -361,7 +366,9 @@ > > configWrapper = > > ProductConfigWorker.loadProductConfigWrapper(delegator, dispatcher, > > configId, productId, productStoreId, prodCatalogId, website, > > currency, locale, userLogin); > > } > > try { > > - itemIndex = cart.addItemToEnd(productId, > > amount, quantityDbl, null, reservStart, reservLength, reservPersons, > > null, null, prodCatalogId, configWrapper, > > item.getString("orderItemTypeId"), dispatcher, null, null, > > skipInventoryChecks, skipProductChecks); > > + > > + itemIndex = > > cart.addItemToEnd(productId, amount, quantityDbl, null, reservStart, > > reservLength, reservPersons,accommodationMapId,accommodationSpotId, > > null, null, prodCatalogId, configWrapper, > > item.getString("orderItemTypeId"), dispatcher, null, null, > > skipInventoryChecks, skipProductChecks); > > + > > } catch (ItemNotFoundException e) { > > Debug.logError(e, module); > > return > > ServiceUtil.returnError(e.getMessage()); > > @@ -613,6 +620,8 @@ > > Timestamp reservStart = > > item.getTimestamp("reservStart"); > > Double reservLength = item.getDouble("reservLength"); > > Double reservPersons = > > item.getDouble("reservPersons"); > > + String accommodationMapId = > > item.getString("accommodationMapId"); > > + String accommodationSpotId = > > item.getString("accommodationSpotId"); > > > > int itemIndex = -1; > > if (item.get("productId") == null) { > > @@ -633,7 +642,8 @@ > > configWrapper = > > ProductConfigWorker.loadProductConfigWrapper(delegator, dispatcher, > > item.getString("configId"), productId, productStoreId, null, null, > > currency, locale, userLogin); > > } > > try { > > - itemIndex = cart.addItemToEnd(productId, > > amount, quantity.doubleValue(), quoteUnitPrice, reservStart, > > reservLength, reservPersons, null, null, null, configWrapper, null, > > dispatcher, new Boolean(!applyQuoteAdjustments), new > > Boolean(quoteUnitPrice.doubleValue() == 0), Boolean.FALSE, > > Boolean.FALSE); > > + itemIndex = > > cart.addItemToEnd(productId, amount, quantity.doubleValue(), > > quoteUnitPrice, reservStart, reservLength, > > reservPersons,accommodationMapId,accommodationSpotId, null, null, > > null, configWrapper, null, dispatcher, new Boolean(! > > applyQuoteAdjustments), new Boolean(quoteUnitPrice.doubleValue() == > > 0), Boolean.FALSE, Boolean.FALSE); > > + > > } catch (ItemNotFoundException e) { > > Debug.logError(e, module); > > return > > ServiceUtil.returnError(e.getMessage()); > > > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > > shoppinglist/ShoppingListEvents.java > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ShoppingListEvents.java?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > > ShoppingListEvents.java (original) > > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > > ShoppingListEvents.java Sun Feb 24 18:22:15 2008 > > @@ -147,6 +147,8 @@ > > ctx.put("reservStart", item.getReservStart()); > > ctx.put("reservLength", new > > Double(item.getReservLength())); > > ctx.put("reservPersons", new > > Double(item.getReservPersons())); > > + ctx.put("accommodationMapId", new > > Double(item.getAccommodationMapId())); > > + ctx.put("accommodationSpotId", new > > Double(item.getAccommodationSpotId())); > > if (item.getConfigWrapper() != null) { > > ctx.put("configId", > > item.getConfigWrapper().getConfigId()); > > } > > @@ -258,6 +260,8 @@ > > Timestamp reservStart = > > shoppingListItem.getTimestamp("reservStart"); > > Double reservLength = > > shoppingListItem.getDouble("reservLength"); > > Double reservPersons = > > shoppingListItem.getDouble("reservPersons"); > > + String accommodationMapId = > > shoppingListItem.getString("accommodationMapId"); > > + String accommodationSpotId = > > shoppingListItem.getString("accommodationSpotId"); > > String configId = shoppingListItem.getString("configId"); > > try { > > String listId = > > shoppingListItem.getString("shoppingListId"); > > @@ -283,9 +287,9 @@ > > > > // i cannot get the addOrDecrease function to accept > > a null reservStart field: i get a null pointer exception a null > > constant works.... > > if (reservStart == null) { > > - cart.addOrIncreaseItem(productId, null, > > quantity.doubleValue(), null, null, null, null, null, null, > > attributes, prodCatalogId, configWrapper, null, null, null, > > dispatcher); > > - } else { > > - cart.addOrIncreaseItem(productId, null, > > quantity.doubleValue(), reservStart, reservLength, reservPersons, > > null, null, null, attributes, prodCatalogId, configWrapper, null, > > null, null, dispatcher); > > + cart.addOrIncreaseItem(productId, null, > > quantity.doubleValue(), null, null, null, null, null, null, > > attributes, prodCatalogId, configWrapper, null, null, null, > > dispatcher); > > + }else{ > > + cart.addOrIncreaseItem(productId, null, > > quantity.doubleValue(), reservStart, reservLength, > > reservPersons,accommodationMapId,accommodationSpotId, null, null, > > null, attributes, prodCatalogId, configWrapper, null, null, null, > > dispatcher); > > } > > Map messageMap = UtilMisc.toMap("productId", > > productId); > > errMsg = > > UtilProperties > > .getMessage(resource,"shoppinglistevents.added_product_to_cart", > > messageMap, cart.getLocale()); > > > > Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/ > > shoppinglist/ShoppingListServices.java > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ShoppingListServices.java?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > > ShoppingListServices.java (original) > > +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppinglist/ > > ShoppingListServices.java Sun Feb 24 18:22:15 2008 > > @@ -475,6 +475,9 @@ > > Timestamp reservStart = > > shoppingListItem.getTimestamp("reservStart"); > > Double reservLength = null; > > String configId = > > shoppingListItem.getString("configId"); > > + String accommodationMapId = > > shoppingListItem.getString("accommodationMapId"); > > + String accommodationSpotId = > > shoppingListItem.getString("accommodationSpotId"); > > + > > if (shoppingListItem.get("reservLength") != > > null) { > > reservLength = > > shoppingListItem.getDouble("reservLength"); > > } > > @@ -482,6 +485,12 @@ > > if (shoppingListItem.get("reservPersons") != > > null) { > > reservPersons = > > shoppingListItem.getDouble("reservPersons"); > > } > > + if (shoppingListItem.get("accommodationMapId") ! > > = null) { > > + accommodationMapId = > > shoppingListItem.getString("accommodationMapId"); > > + } > > + if > > (shoppingListItem.get("accommodationSpotId") != null) { > > + accommodationSpotId = > > shoppingListItem.getString("accommodationSpotId"); > > + } > > if (UtilValidate.isNotEmpty(productId) && > > quantity != null) { > > > > if (UtilValidate.isNotEmpty(configId)) { > > @@ -493,7 +502,7 @@ > > Map attributes = > > UtilMisc.toMap("shoppingListId", listId, "shoppingListItemSeqId", > > itemId); > > > > try { > > - listCart.addOrIncreaseItem(productId, > > null, quantity.doubleValue(), reservStart, reservLength, > > reservPersons, null, null, null, attributes, null, configWrapper, > > null, null, null, dispatcher); > > + listCart.addOrIncreaseItem(productId, > > null, quantity.doubleValue(), reservStart, reservLength, > > reservPersons,accommodationMapId,accommodationSpotId, null, null, > > null, attributes, null, configWrapper, null, null, null, dispatcher); > > } catch (CartItemModifyException e) { > > Debug.logError(e, "Unable to add product > > to List Cart - " + productId, module); > > } catch (ItemNotFoundException e) { > > > > Modified: ofbiz/trunk/applications/workeffort/entitydef/ > > entitymodel.xml > > URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml?rev=630718&r1=630717&r2=630718&view=diff > > = > > = > > = > > = > > = > > = > > = > > = > > ====================================================================== > > --- ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml > > (original) > > +++ ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml > > Sun Feb 24 18:22:15 2008 > > @@ -278,6 +278,8 @@ > > <field name="reservPersons" type="floating- > > point"><description>the number of persons renting the attached > > asset</description></field> > > <field name="reserv2ndPPPerc" type="floating- > > point"><description>reservationSecondPersonPricePercentage: > > percentage of the end price for the 2nd person renting this asset > > connected to the workEffort</description></field> > > <field name="reservNthPPPerc" type="floating- > > point"><description>reservationNthPersonPricePercentage: percentage > > of the end price for the Nth (2+) person renting this asset > > connected to the workEffort</description></field> > > + <field name="accommodationMapId" type="id"/> > > + <field name="accommodationSpotId" type="id"/> > > <field name="revisionNumber" type="numeric"></field> > > <field name="createdDate" type="date-time"></field> > > <field name="createdByUserLogin" type="id-vlong"></field> > > @@ -340,6 +342,12 @@ > > <relation type="one" fk-name="WK_EFFRT_CUS_MET" rel-entity- > > name="CustomMethod"> > > <key-map field-name="estimateCalcMethod" rel-field- > > name="customMethodId"/> > > </relation> > > + <relation type="one" fk-name="WK_EFFRT_ACC_MAP" rel-entity- > > name="AccommodationMap"> > > + <key-map field-name="accommodationMapId"/> > > + </relation> > > + <relation type="one" fk-name="WK_EFFRT_ACC_SPOT" rel-entity- > > name="AccommodationSpot"> > > + <key-map field-name="accommodationSpotId"/> > > + </relation> > > </entity> > > <entity entity-name="WorkEffortAssoc" > > package-name="org.ofbiz.workeffort.workeffort" > > > > > > AntWebsystems.com: Quality OFBiz services for competitive rates..... |
Free forum by Nabble | Edit this page |