You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2007/01/20 09:54:48 UTC
svn commit: r498094 -
/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java
Author: jleroux
Date: Sat Jan 20 00:54:48 2007
New Revision: 498094
URL: http://svn.apache.org/viewvc?view=rev&rev=498094
Log:
A patch from Jonathon Wong "Creating a purchase order allows shipping information step to be skipped" (http://issues.apache.org/jira/browse/OFBIZ-627)
Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java?view=diff&rev=498094&r1=498093&r2=498094
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutEvents.java Sat Jan 20 00:54:48 2007
@@ -37,18 +37,17 @@
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilProperties;
import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.webapp.stats.VisitHandler;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.marketing.tracking.TrackingCodeEvents;
-import org.ofbiz.order.shoppingcart.shipping.ShippingEvents;
import org.ofbiz.product.catalog.CatalogWorker;
import org.ofbiz.product.store.ProductStoreWorker;
import org.ofbiz.service.GenericServiceException;
import org.ofbiz.service.LocalDispatcher;
import org.ofbiz.service.ModelService;
import org.ofbiz.service.ServiceUtil;
+import org.ofbiz.webapp.stats.VisitHandler;
/**
* Events used for processing checkout and orders.
@@ -712,6 +711,8 @@
ServiceUtil.getMessages(request, callResult, null);
// determine whether it was a success or not
if (callResult.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR)) {
+ if (mode.equals("ship")) return "shipping";
+ if (mode.equals("options")) return "options";
return "error";
}
}
@@ -841,38 +842,64 @@
List paymentMethodIds = cart.getPaymentMethodIds();
List paymentMethodTypeIds = cart.getPaymentMethodTypeIds();
- if (requireCustomer && (customerPartyId == null || customerPartyId.equals("_NA_"))) {
- return "customer";
- }
-
- if (requireShipping && !shippingAddressSet) {
- return "shipping";
- }
-
- if (requireShipGroups) {
- return "shipGroups";
- }
+ String[] processOrder = {"customer", "shipping", "shipGroups", "options", "term", "payment",
+ "addparty", "paysplit"};
- if (requireOptions && !shippingOptionsSet) {
- return "options";
- }
-
- if (requireTerm && !cart.isOrderTermSet()) {
- return "term";
- }
- if (requirePayment && (paymentMethodIds == null || paymentMethodIds.size() == 0) && (paymentMethodTypeIds == null || paymentMethodTypeIds.size() == 0)) {
- return "payment";
- }
-
- if (requireAdditionalParty && cart.getAttribute("addpty") == null) {
- return "addparty";
+ if (cart.getOrderType().equals("PURCHASE_ORDER")) {
+ // Force checks for the following
+ requireCustomer = true; requireShipping = true; requireOptions = true;
+ requireAdditionalParty = true;
+ processOrder = new String[] {"customer", "term", "shipping", "shipGroups", "options", "payment",
+ "addparty", "paysplit"};
+ }
+
+ for (int i = 0; i < processOrder.length; i++) {
+ String currProcess = processOrder[i];
+ if (currProcess.equals("customer")) {
+ if (requireCustomer && (customerPartyId == null || customerPartyId.equals("_NA_"))) {
+ return "customer";
+ }
+ }
+ else if (currProcess.equals("shipping")) {
+ if (requireShipping && !shippingAddressSet) {
+ return "shipping";
+ }
+ }
+ else if (currProcess.equals("shipGroups")) {
+ if (requireShipGroups) {
+ return "shipGroups";
+ }
+ }
+ else if (currProcess.equals("options")) {
+ if (requireOptions && !shippingOptionsSet) {
+ return "options";
+ }
+ }
+ else if (currProcess.equals("term")) {
+ if (requireTerm && !cart.isOrderTermSet()) {
+ return "term";
+ }
+ }
+ else if (currProcess.equals("payment")) {
+ if (requirePayment && (paymentMethodIds == null || paymentMethodIds.size() == 0) && (paymentMethodTypeIds == null || paymentMethodTypeIds.size() == 0)) {
+ return "payment";
+ }
+ }
+ else if (currProcess.equals("addparty")) {
+ if (requireAdditionalParty && cart.getAttribute("addpty") == null) {
+ return "addparty";
+ }
+ }
+ else if (currProcess.equals("paysplit")) {
+ if (isSingleUsePayment) {
+ return "paysplit";
+ }
+ }
}
- if (isSingleUsePayment) {
- return "paysplit";
- }
+ // Finally, if all checks go through, finalize the order.
- // this is used to go back to a previous page in checkout after processing all of the changes, just to make sure we get everything...
+ // this is used to go back to a previous page in checkout after processing all of the changes, just to make sure we get everything...
String checkoutGoTo = request.getParameter("checkoutGoTo");
if (UtilValidate.isNotEmpty(checkoutGoTo)) {
return checkoutGoTo;