svn commit: r1063265 - in /ofbiz/trunk: applications/party/widget/partymgr/ specialpurpose/ebay/src/org/ofbiz/ebay/ specialpurpose/ebay/widget/ specialpurpose/ebaystore/src/org/ofbiz/ebaystore/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1063265 - in /ofbiz/trunk: applications/party/widget/partymgr/ specialpurpose/ebay/src/org/ofbiz/ebay/ specialpurpose/ebay/widget/ specialpurpose/ebaystore/src/org/ofbiz/ebaystore/

jleroux@apache.org
Author: jleroux
Date: Tue Jan 25 13:23:19 2011
New Revision: 1063265

URL: http://svn.apache.org/viewvc?rev=1063265&view=rev
Log:
A patch from Arun Patidar "Some misc issues in ebayStore component." (https://issues.apache.org/jira/browse/OFBIZ-4118) - OFBIZ-4118

one more patch to fix following issues in ebay and ebayStore components
1 Fixed issue of set complete order status in ebay when we complete order in ofbiz.
2 Created record of OrderPaymentPreference in PAYMENT_RECEIVED status.
3 Updated qty of cart item, if same product is adding again in cart during import order from ebay.
4 Set transactionId in cart.

Modified:
    ofbiz/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml
    ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayHelper.java
    ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayOrderServices.java
    ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ImportOrdersFromEbay.java
    ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java
    ofbiz/trunk/specialpurpose/ebay/widget/CommonScreens.xml
    ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreOrder.java

Modified: ofbiz/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml?rev=1063265&r1=1063264&r2=1063265&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml (original)
+++ ofbiz/trunk/applications/party/widget/partymgr/CommunicationEventForms.xml Tue Jan 25 13:23:19 2011
@@ -918,7 +918,7 @@ under the License.
         <field name="delContentDataResource"><hidden value="Y"/></field>
         <field name="communicationEventId"><hidden/></field>
         <field name="subject" widget-style="buttontext" widget-area-style="fieldWidth300">
-            <hyperlink description="${subject}" target="${parameters._LAST_VIEW_NAME_}">
+            <hyperlink description="${subject}" target="${parameters._LAST_VIEW_NAME_}" also-hidden="true">
                 <parameter param-name="communicationEventId"/>
                 <parameter param-name="partyId"/>
                 <parameter param-name="my" value="My"/>

Modified: ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayHelper.java?rev=1063265&r1=1063264&r2=1063265&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayHelper.java (original)
+++ ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayHelper.java Tue Jan 25 13:23:19 2011
@@ -192,7 +192,7 @@ public class EbayHelper {
     }
 
     public static boolean createPaymentFromPaymentPreferences(Delegator delegator, LocalDispatcher dispatcher, GenericValue userLogin,
-            String orderId, String externalId, Timestamp orderDate, String partyIdFrom) {
+        String orderId, String externalId, Timestamp orderDate, BigDecimal amount, String partyIdFrom) {
         List<GenericValue> paymentPreferences = null;
         try {
             Map<String, String> paymentFields = UtilMisc.toMap("orderId", orderId, "statusId", "PAYMENT_RECEIVED",
@@ -207,7 +207,25 @@ public class EbayHelper {
                     if (!okay)
                         return false;
                 }
-            }
+            } else {
+                paymentFields = UtilMisc.toMap("orderId", orderId, "statusId", "PAYMENT_NOT_RECEIVED",
+                    "paymentMethodTypeId", "EXT_EBAY");
+                paymentPreferences = delegator.findByAnd("OrderPaymentPreference", paymentFields);
+                if (UtilValidate.isNotEmpty(paymentPreferences)) {
+                    Iterator<GenericValue> i = paymentPreferences.iterator();
+                    while (i.hasNext()) {
+                        GenericValue pref = (GenericValue) i.next();
+                        if (UtilValidate.isNotEmpty(amount)) {
+                            pref.set("statusId", "PAYMENT_RECEIVED");
+                            pref.set("maxAmount", amount);
+                            pref.store();
+                        }
+                        boolean okay = createPayment(dispatcher, userLogin, pref, orderId, externalId, orderDate, partyIdFrom);
+                        if (!okay)
+                            return false;
+                    }
+                }
+            }
         } catch (Exception e) {
             Debug.logError(e, "Cannot get payment preferences for order #" + orderId, module);
             return false;

Modified: ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayOrderServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayOrderServices.java?rev=1063265&r1=1063264&r2=1063265&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayOrderServices.java (original)
+++ ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/EbayOrderServices.java Tue Jan 25 13:23:19 2011
@@ -871,6 +871,7 @@ public class EbayOrderServices {
                             } else {
                                 orderCtx.put("externalId", "EBT_" + transactionId);
                             }
+                            orderCtx.put("transactionId", "EBI_" + itemId);
 
                             GenericValue orderExist = externalOrderExists(delegator, (String)orderCtx.get("externalId"));
                             if (orderExist != null) {
@@ -1006,12 +1007,14 @@ public class EbayOrderServices {
 
             // set the external id with the eBay Item Id
             String externalId = (String) context.get("externalId");
+            String transactionId = (String) context.get("transactionId");
 
             if (UtilValidate.isNotEmpty(externalId)) {
                 if (externalOrderExists(delegator, externalId) != null && create) {
                     return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "ordersImportFromEbay.externalIdAlreadyExist", locale));
                 }
                 cart.setExternalId(externalId);
+                cart.setTransactionId(transactionId);
             } else {
                 return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "ordersImportFromEbay.externalIdNotAvailable", locale));
             }
@@ -1232,7 +1235,7 @@ public class EbayOrderServices {
                     // create the payment from the preference
                     if (approved) {
                         Debug.logInfo("Creating payment for approved order.", module);
-                        EbayHelper.createPaymentFromPaymentPreferences(delegator, dispatcher, userLogin, orderId, externalId, cart.getOrderDate(), partyId);
+                        EbayHelper.createPaymentFromPaymentPreferences(delegator, dispatcher, userLogin, orderId, externalId, cart.getOrderDate(), amountPaid, partyId);
                         Debug.logInfo("Payment created.", module);
                     }
                 }
@@ -1274,20 +1277,36 @@ public class EbayOrderServices {
         HashMap<Object, Object> attrs = new HashMap<Object, Object>();
         attrs.put("shipGroup", groupIdx);
 
-        int idx = cart.addItemToEnd(productId, null, qty, null, null, attrs, null, null, dispatcher, Boolean.FALSE, Boolean.TRUE, Boolean.TRUE, Boolean.TRUE);
-        ShoppingCartItem cartItem = cart.findCartItem(idx);
-        cartItem.setQuantity(qty, dispatcher, cart, true, false);
-        // locate the price verify it matches the expected price
-        BigDecimal cartPrice = cartItem.getBasePrice();
-        cartPrice = cartPrice.setScale(ShoppingCart.scale, ShoppingCart.rounding);
-        if (price.doubleValue() != cartPrice.doubleValue()) {
-            // does not match; honor the price but hold the order for manual review
-            cartItem.setIsModifiedPrice(true);
-            cartItem.setBasePrice(price);
-            cart.setHoldOrder(true);
-            cart.addInternalOrderNote("Price received [" + price + "] (for item # " + productId + ") from eBay Checkout does not match the price in the database [" + cartPrice + "]. Order is held for manual review.");
+        // Checking if previously added same product exists in the cart
+        ShoppingCartItem previouslyAddedItemInCart = null;
+        if (cart.size() != 0) {
+            Iterator cartiter = cart.iterator();
+            while (cartiter != null && cartiter.hasNext()) {
+                ShoppingCartItem cartItem = (ShoppingCartItem) cartiter.next();
+                if (cartItem.getProductId().equals(productId)) {
+                    previouslyAddedItemInCart = cartItem;
+                }
+            }
         }
-        // assign the item to its ship group
-        cart.setItemShipGroupQty(cartItem, qty, groupIdx);
-    }
+        if (previouslyAddedItemInCart != null) {
+            BigDecimal newQuantity = previouslyAddedItemInCart.getQuantity().add(qty);
+            previouslyAddedItemInCart.setQuantity(newQuantity, dispatcher, cart);
+        } else {
+            int idx = cart.addItemToEnd(productId, null, qty, null, null, attrs, null, null, dispatcher, Boolean.FALSE, Boolean.TRUE, Boolean.TRUE, Boolean.TRUE);
+            ShoppingCartItem cartItem = cart.findCartItem(idx);
+            cartItem.setQuantity(qty, dispatcher, cart, true, false);
+            // locate the price verify it matches the expected price
+            BigDecimal cartPrice = cartItem.getBasePrice();
+            cartPrice = cartPrice.setScale(ShoppingCart.scale, ShoppingCart.rounding);
+            if (price.doubleValue() != cartPrice.doubleValue()) {
+                // does not match; honor the price but hold the order for manual review
+                cartItem.setIsModifiedPrice(true);
+                cartItem.setBasePrice(price);
+                cart.setHoldOrder(true);
+                cart.addInternalOrderNote("Price received [" + price + "] (for item # " + productId + ") from eBay Checkout does not match the price in the database [" + cartPrice + "]. Order is held for manual review.");
+            }
+            // assign the item to its ship group
+            cart.setItemShipGroupQty(cartItem, qty, groupIdx);
+        }
+    }
 }

Modified: ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ImportOrdersFromEbay.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ImportOrdersFromEbay.java?rev=1063265&r1=1063264&r2=1063265&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ImportOrdersFromEbay.java (original)
+++ ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ImportOrdersFromEbay.java Tue Jan 25 13:23:19 2011
@@ -129,6 +129,7 @@ public class ImportOrdersFromEbay {
         Locale locale = (Locale) context.get("locale");
         String orderId = (String) context.get("orderId");
         String externalId = (String) context.get("externalId");
+        String transactionId = "";
         Map<String, Object> result = FastMap.newInstance();
         try {
             if (orderId == null && externalId == null) {
@@ -153,6 +154,7 @@ public class ImportOrdersFromEbay {
 
                 // get externalId from OrderHeader
                 externalId = (String)orderHeader.get("externalId");
+                transactionId = orderHeader.getString("transactionId");
                 String productStoreId = (String) orderHeader.get("productStoreId");
                 if (UtilValidate.isNotEmpty(productStoreId)) {
                     context.put("productStoreId", productStoreId);
@@ -163,8 +165,9 @@ public class ImportOrdersFromEbay {
 
             StringBuffer completeSaleXml = new StringBuffer();
 
-            if (!ServiceUtil.isFailure(buildCompleteSaleRequest(delegator, locale, externalId, context, completeSaleXml, eBayConfigResult.get("token").toString()))) {
+            if (!ServiceUtil.isFailure(buildCompleteSaleRequest(delegator, locale, externalId, transactionId, context, completeSaleXml, eBayConfigResult.get("token").toString()))) {
                 result = EbayHelper.postItem(eBayConfigResult.get("xmlGatewayUri").toString(), completeSaleXml, eBayConfigResult.get("devID").toString(), eBayConfigResult.get("appID").toString(), eBayConfigResult.get("certID").toString(), "CompleteSale", eBayConfigResult.get("compatibilityLevel").toString(), eBayConfigResult.get("siteID").toString());
+
                 String successMessage = (String)result.get("successMessage");
                 if (successMessage != null) {
                     return readCompleteSaleResponse(successMessage, locale);
@@ -247,12 +250,12 @@ public class ImportOrdersFromEbay {
          return ServiceUtil.returnSuccess();
     }
 
-    public static Map<String, Object> buildCompleteSaleRequest(Delegator delegator, Locale locale, String transactionId, Map<String, Object> context, StringBuffer dataItemsXml, String token) {
+    public static Map<String, Object> buildCompleteSaleRequest(Delegator delegator, Locale locale, String externalId, String transactionId, Map<String, Object> context, StringBuffer dataItemsXml, String token) {
         String paid = (String)context.get("paid");
         String shipped = (String)context.get("shipped");
 
         try {
-            if (transactionId == null) {
+            if (externalId == null) {
                 return ServiceUtil.returnFailure(UtilProperties.getMessage(resource, "ordersImportFromEbay.errorDuringBuildItemAndTransactionIdFromExternalId", locale));
             }
 
@@ -261,22 +264,26 @@ public class ImportOrdersFromEbay {
             transElem.setAttribute("xmlns", "urn:ebay:apis:eBLBaseComponents");
 
             EbayHelper.appendRequesterCredentials(transElem, transDoc, token);
-
-            if (transactionId.startsWith("EBT_")) {
-                UtilXml.addChildElementValue(transElem, "TransactionID", transactionId.substring(4), transDoc);
-                UtilXml.addChildElementValue(transElem, "ItemID", "0", transDoc);
-            } else if (transactionId.startsWith("EBO_")) {
-                UtilXml.addChildElementValue(transElem, "OrderID", transactionId.substring(4), transDoc);
+            if (externalId.startsWith("EBT_")) {
+                UtilXml.addChildElementValue(transElem, "TransactionID", externalId.substring(4), transDoc);
+                UtilXml.addChildElementValue(transElem, "ItemID", transactionId.substring(4), transDoc);
+            } else if (externalId.startsWith("EBO_")) {
+                UtilXml.addChildElementValue(transElem, "OrderID", externalId.substring(4), transDoc);
                 UtilXml.addChildElementValue(transElem, "TransactionID", "0", transDoc);
                 UtilXml.addChildElementValue(transElem, "ItemID", "0", transDoc);
-            } else if (transactionId.startsWith("EBI_")) {
-                UtilXml.addChildElementValue(transElem, "ItemID", transactionId.substring(4), transDoc);
+            } else if (externalId.startsWith("EBI_")) {
+                UtilXml.addChildElementValue(transElem, "ItemID", externalId.substring(4), transDoc);
+                UtilXml.addChildElementValue(transElem, "TransactionID", "0", transDoc);
+            } else if (externalId.startsWith("EBS_")) {
+                //UtilXml.addChildElementValue(transElem, "OrderID", externalId.substring(4), transDoc);
                 UtilXml.addChildElementValue(transElem, "TransactionID", "0", transDoc);
+                UtilXml.addChildElementValue(transElem, "ItemID", externalId.substring(4), transDoc);
             }
 
             // default shipped = Y (call from eca during order completed)
             if (paid == null && shipped == null) {
                 shipped = "Y";
+                paid = "Y";
             }
 
             // Set item id to paid or not paid
@@ -499,6 +506,7 @@ public class ImportOrdersFromEbay {
                             } else {
                                 order.put("externalId", "EBT_" + transactionId);
                             }
+                            order.put("transactionId", "EBI_" + itemId);
 
                             GenericValue orderExist = externalOrderExists(delegator, (String)order.get("externalId"));
                             if (orderExist != null) {
@@ -799,7 +807,7 @@ public class ImportOrdersFromEbay {
                     // create the payment from the preference
                     if (approved) {
                         Debug.logInfo("Creating payment for approved order.", module);
-                        EbayHelper.createPaymentFromPaymentPreferences(delegator, dispatcher, userLogin, orderId, externalId, cart.getOrderDate(), partyId);
+                        EbayHelper.createPaymentFromPaymentPreferences(delegator, dispatcher, userLogin, orderId, externalId, cart.getOrderDate(), amountPaid, partyId);
                         Debug.logInfo("Payment created.", module);
                     }
                 }

Modified: ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java?rev=1063265&r1=1063264&r2=1063265&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java (original)
+++ ofbiz/trunk/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java Tue Jan 25 13:23:19 2011
@@ -309,6 +309,11 @@ public class ProductsExportToEbay {
 
                 Element primaryCatElem = UtilXml.addChildElement(itemElem, "PrimaryCategory", itemDocument);
                 UtilXml.addChildElementValue(primaryCatElem, "CategoryID", primaryCategoryId, itemDocument);
+                UtilXml.addChildElementValue(itemElem, "ConditionID", "1000", itemDocument);
+                Element itemSpecificsElem = UtilXml.addChildElement(itemElem, "ItemSpecifics", itemDocument);
+                Element nameValueListElem = UtilXml.addChildElement(itemSpecificsElem, "NameValueList", itemDocument);
+                UtilXml.addChildElementValue(nameValueListElem, "Name", "Condition", itemDocument);
+                UtilXml.addChildElementValue(nameValueListElem, "Value", "New: With Tags", itemDocument);
 
                 //Debug.logInfo("The generated string is ======= " + UtilXml.writeXmlDocument(itemDocument), module);
                 dataItemsXml.append(UtilXml.writeXmlDocument(itemDocument));

Modified: ofbiz/trunk/specialpurpose/ebay/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebay/widget/CommonScreens.xml?rev=1063265&r1=1063264&r2=1063265&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebay/widget/CommonScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/ebay/widget/CommonScreens.xml Tue Jan 25 13:23:19 2011
@@ -28,6 +28,7 @@ under the License.
                 <property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
                 <property-map resource="WorkEffortUiLabels" map-name="uiLabelMap" global="true"/>
+                <property-map resource="GoogleBaseUiLabels" map-name="uiLabelMap" global="true"/>
                 <set field="activeApp" value="ebay" global="true"/>
                 <set field="layoutSettings.companyName" from-field="uiLabelMap.EbayCompanyName" global="true"/>
                 <set field="layoutSettings.companySubtitle" from-field="uiLabelMap.EbayApplication" global="true"/>

Modified: ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreOrder.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreOrder.java?rev=1063265&r1=1063264&r2=1063265&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreOrder.java (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreOrder.java Tue Jan 25 13:23:19 2011
@@ -300,7 +300,7 @@ public class EbayStoreOrder {
                     // create the payment from the preference
                     if (approved) {
                         Debug.logInfo("Creating payment for approved order.", module);
-                        EbayHelper.createPaymentFromPaymentPreferences(delegator, dispatcher, userLogin, orderId, externalId, cart.getOrderDate(), partyId);
+                        EbayHelper.createPaymentFromPaymentPreferences(delegator, dispatcher, userLogin, orderId, externalId, cart.getOrderDate(), amountPaid, partyId);
                         Debug.logInfo("Payment created.", module);
                     }
                 }
@@ -542,7 +542,7 @@ public class EbayStoreOrder {
                 // create the payment from the preference
                 if (approved) {
                     Debug.logInfo("Creating payment for approved order.", module);
-                    EbayHelper.createPaymentFromPaymentPreferences(delegator, dispatcher, userLogin, orderId, externalId, cart.getOrderDate(), partyId);
+                    EbayHelper.createPaymentFromPaymentPreferences(delegator, dispatcher, userLogin, orderId, externalId, cart.getOrderDate(), amountPaid, partyId);
                     Debug.logInfo("Payment created.", module);
                 }
             }