Author: jaz
Date: Mon Mar 26 21:39:42 2007 New Revision: 522743 URL: http://svn.apache.org/viewvc?view=rev&rev=522743 Log: very basic create non-product order service Modified: ofbiz/trunk/applications/order/servicedef/services.xml ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java Modified: ofbiz/trunk/applications/order/servicedef/services.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services.xml?view=diff&rev=522743&r1=522742&r2=522743 ============================================================================== --- ofbiz/trunk/applications/order/servicedef/services.xml (original) +++ ofbiz/trunk/applications/order/servicedef/services.xml Mon Mar 26 21:39:42 2007 @@ -140,7 +140,22 @@ <attribute name="orderId" type="String" mode="OUT" optional="false"/> <attribute name="statusId" type="String" mode="OUT" optional="false"/> </service> + + <service name="callProcessOrderPayments" engine="java" + location="org.ofbiz.order.order.OrderServices" invoke="callProcessOrderPayments" auth="true"> + <attribute name="shoppingCart" type="org.ofbiz.order.shoppingcart.ShoppingCart" mode="IN" optional="false"/> + <attribute name="manualHold" type="Boolean" mode="IN" optional="true"/> + </service> + <service name="createSimpleNonProductSalesOrder" engine="java" + location="org.ofbiz.order.order.OrderServices" invoke="createSimpleNonProductSalesOrder" auth="true"> + <attribute name="paymentMethodId" type="String" mode="IN" optional="false"/> + <attribute name="productStoreId" type="String" mode="IN" optional="false"/> + <attribute name="currency" type="String" mode="IN" optional="false"/> + <attribute name="partyId" type="String" mode="IN" optional="false"/> + <attribute name="itemMap" type="Map" mode="IN" optional="false"/> + </service> + <service name="createOrderItemBilling" engine="simple" location="org/ofbiz/order/order/OrderSimpleMethods.xml" invoke="createOrderItemBilling"> <description>Create a new order item billing record</description> 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?view=diff&rev=522743&r1=522742&r2=522743 ============================================================================== --- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java (original) +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java Mon Mar 26 21:39:42 2007 @@ -3978,4 +3978,88 @@ return ServiceUtil.returnSuccess(); } + + // create simple non-product order + public static Map createSimpleNonProductSalesOrder(DispatchContext dctx, Map context) { + LocalDispatcher dispatcher = dctx.getDispatcher(); + GenericDelegator delegator = dctx.getDelegator(); + + GenericValue userLogin = (GenericValue) context.get("userLogin"); + Locale locale = (Locale) context.get("locale"); + + String paymentMethodId = (String) context.get("paymentMethodId"); + String productStoreId = (String) context.get("productStoreId"); + String currency = (String) context.get("currency"); + String partyId = (String) context.get("partyId"); + Map itemMap = (Map) context.get("itemMap"); + + ShoppingCart cart = new ShoppingCart(delegator, productStoreId, null, locale, currency); + cart.setOrderType("SALES_ORDER"); + cart.setOrderPartyId(partyId); + + Iterator i = itemMap.keySet().iterator(); + while (i.hasNext()) { + String item = (String) i.next(); + Double price = (Double) itemMap.get(item); + try { + cart.addNonProductItem("BULK_ORDER_ITEM", item, null, price, 1, null, null, null, dispatcher); + } catch (CartItemModifyException e) { + Debug.logError(e, module); + return ServiceUtil.returnError(e.getMessage()); + } + } + + // set the payment method + cart.addPayment(paymentMethodId); + + Map procCtx = FastMap.newInstance(); + procCtx.put("shoppingCart", cart); + procCtx.put("userLogin", userLogin); + Map procResp; + try { + procResp = dispatcher.runSync("callProcessOrderPayments", procCtx); + } catch (GenericServiceException e) { + Debug.logError(e, module); + return ServiceUtil.returnError(e.getMessage()); + } + if (ServiceUtil.isError(procResp)) { + return procResp; + } + + Map result = ServiceUtil.returnSuccess(); + //result.put("shoppingCart", cart); + return result; + } + + // generic method for processing an order's payment(s) + public static Map callProcessOrderPayments(DispatchContext dctx, Map context) { + LocalDispatcher dispatcher = dctx.getDispatcher(); + GenericDelegator delegator = dctx.getDelegator(); + + GenericValue userLogin = (GenericValue) context.get("userLogin"); + ShoppingCart cart = (ShoppingCart) context.get("shoppingCart"); + Boolean manualHold = (Boolean) context.get("manualHold"); + if (manualHold == null) { + manualHold = Boolean.FALSE; + } + + String productStoreId = cart.getProductStoreId(); + + GenericValue productStore = ProductStoreWorker.getProductStore(productStoreId, delegator); + CheckOutHelper coh = new CheckOutHelper(dispatcher, delegator, cart); + + // process payment + Map payResp; + try { + payResp = coh.processPayment(productStore, userLogin, false, manualHold.booleanValue()); + } catch (GeneralException e) { + Debug.logError(e, module); + return ServiceUtil.returnError(e.getMessage()); + } + if (ServiceUtil.isError(payResp)) { + return ServiceUtil.returnError(ServiceUtil.getErrorMessage(payResp)); + } + + return ServiceUtil.returnSuccess(); + } } |
Free forum by Nabble | Edit this page |