svn commit: r916712 - in /ofbiz/trunk/specialpurpose/ebaystore: data/ script/org/ofbiz/ebaystore/ servicedef/ src/org/ofbiz/ebaystore/ webapp/ebaystore/WEB-INF/ widget/

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

svn commit: r916712 - in /ofbiz/trunk/specialpurpose/ebaystore: data/ script/org/ofbiz/ebaystore/ servicedef/ src/org/ofbiz/ebaystore/ webapp/ebaystore/WEB-INF/ widget/

hansbak-2
Author: hansbak
Date: Fri Feb 26 15:16:46 2010
New Revision: 916712

URL: http://svn.apache.org/viewvc?rev=916712&view=rev
Log:
Ebay store: combine orders on ebay site when an orders came from the same buyer.

Modified:
    ofbiz/trunk/specialpurpose/ebaystore/data/EbayStoreTypeData.xml
    ofbiz/trunk/specialpurpose/ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml
    ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml
    ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreAutoPreferences.java
    ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml
    ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml
    ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml

Modified: ofbiz/trunk/specialpurpose/ebaystore/data/EbayStoreTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/data/EbayStoreTypeData.xml?rev=916712&r1=916711&r2=916712&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/data/EbayStoreTypeData.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/data/EbayStoreTypeData.xml Fri Feb 26 15:16:46 2010
@@ -21,19 +21,19 @@
 <entity-engine-xml>
     <RoleType roleTypeId="EBAY_ACCOUNT" hasTable="N" description="eBay Account"/>
     <RoleType roleTypeId="COMMENTATOR" hasTable="N" description="Commentator"/>
-    
+
     <EnumerationType description="Inventory Reservation For Ebay Store" enumTypeId="EBAY_INV_RESERVE" hasTable="N" parentTypeId=""/>
     <Enumeration description="ebay inventory reserve" enumCode="EBAY_INV" enumId="EBAY_INV_RES" sequenceId="01" enumTypeId="EBAY_INV_RESERVE"/>
 
     <EnumerationType description="Ebay setting auto preferences" enumTypeId="EBAY_AUTO_PREF" hasTable="N" parentTypeId=""/>
-    
+
     <Enumeration enumId="EBAY_AUTO_DISPUTE1" description="Automatic Dispute not complete" enumTypeId="EBAY_AUTO_PREF"/>
     <Enumeration enumId="EBAY_AUTO_DISPUTE2" description="Automatic Dispute not pay" enumTypeId="EBAY_AUTO_PREF"/>
- <Enumeration enumId="EBAY_AUTO_RELISTING" description="Automatic Relisting" enumTypeId="EBAY_AUTO_PREF"/>
+    <Enumeration enumId="EBAY_AUTO_RELISTING" description="Automatic Relisting" enumTypeId="EBAY_AUTO_PREF"/>
     <Enumeration enumId="EBAY_AUTO_PIT_FB" description="Automatic leave positive feedback when buyer has paid for item" enumTypeId="EBAY_AUTO_PREF"/>
     <Enumeration enumId="EBAY_AUTO_FB_RMD" description="Automatic send reminder email if feedback has not been received after day? shipping" enumTypeId="EBAY_AUTO_PREF"/>
+    <Enumeration enumId="EBAY_AUTO_COMB_ORD" description="Automatic combine order" enumTypeId="EBAY_AUTO_PREF"/>
     <Enumeration enumId="EBAY_AUTO_PR_EMAIL" description="Automatic send payment received email when has not been received" enumTypeId="EBAY_AUTO_PREF"/>
-    
+
     <ProductType productTypeId="EBAY_ITEM" description="Product From eBay"/>
-    
 </entity-engine-xml>

Modified: ofbiz/trunk/specialpurpose/ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml?rev=916712&r1=916711&r2=916712&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml Fri Feb 26 15:16:46 2010
@@ -112,4 +112,48 @@
         </if-empty>
     </simple-method>
     
+    <simple-method method-name="settingCombineOrders" login-required="false" short-description="Setting Automatic Combine Orders">
+        <entity-one entity-name="ProductStore" value-field="productStore" >
+            <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
+        </entity-one>
+        <if-empty field="productStore">
+            <add-error><fail-message message="No ProductStore found with id ${parameters.productStoreId}."/></add-error>
+            <check-errors/>
+        </if-empty>
+        <entity-one entity-name="EbayProductStorePref" value-field="ebayProdStorePref">
+            <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
+            <field-map field-name="autoPrefEnumId" value="EBAY_AUTO_COMB_ORD"/>
+        </entity-one>
+        <!-- map field from screen -->
+        <if-not-empty field="ebayProdStorePref">
+            <set field="parameters.productStoreId"  type="String" default-value="parameters.productStoreId" from-field="ebayProdStorePref.productStoreId"/>
+            <else>
+                <set field="parameters.productStoreId"  type="String" from-field="parameters.productStoreId"/>
+            </else>
+        </if-not-empty>
+        <set field="parameters.autoPrefEnumId"  type="String" value="EBAY_AUTO_COMB_ORD"/>
+        <if-not-empty field="ebayProdStorePref">
+            <if-not-empty field="ebayProdStorePref.autoPrefJobId">
+                <set field="parameters.autoPrefJobId"  type="String" from-field="ebayProdStorePref.autoPrefJobId"/>
+            </if-not-empty>
+        </if-not-empty>
+        <set field="parameters.enabled" default-value="N" type="String" from-field="parameters.isRunCombineOrdersJob"/>
+        <set field="parameters.condition1" type="Integer" default-value="5" from-field="parameters.afterDays"/>
+        <set field="parameters.condition2" default-value="N" type="String" from-field="parameters.isSendCopyEmailToSeller"/>
+        <if-compare field="parameters.enabled" value="N" type="String" operator="equals">
+            <set field="parameters.condition2"  value="N" type="String" />
+        </if-compare>
+        <set field="parameters.serviceName" default-value="runCombineOrders" type="String"/>
+        <session-to-field field="context.userLogin" session-name="userLogin"/>
+        <!-- create new automatically store preferences -->
+        <if-empty field="ebayProdStorePref">
+            <set-service-fields service-name="createEbayProductStorePref" map="parameters" to-map="ebayProductStorePref"/>
+            <call-service service-name="createEbayProductStorePref" in-map-name="ebayProductStorePref" ></call-service>
+            <else>
+                <set-service-fields service-name="updateEbayProductStorePref" map="parameters" to-map="ebayProductStorePref"/>
+                <call-service service-name="updateEbayProductStorePref" in-map-name="ebayProductStorePref"></call-service>
+            </else>
+        </if-empty>
+    </simple-method>
+    
 </simple-methods>
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml?rev=916712&r1=916711&r2=916712&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml Fri Feb 26 15:16:46 2010
@@ -368,4 +368,9 @@
         <attribute name="productStoreId" mode="IN" type="String" optional="false"/>
         <attribute name="jobId" mode="IN" type="String" optional="false"/>
     </service>
+    <service name="runCombineOrders" engine="java" transaction-timeout="7200"
+        location="org.ofbiz.ebaystore.EbayStoreAutoPreferences" invoke="runCombineOrders" auth="true">
+        <attribute name="jobId" mode="IN" type="String" optional="false"/>
+        <attribute name="productStoreId" mode="IN" type="String" optional="false"/>
+    </service>
 </services>
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreAutoPreferences.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreAutoPreferences.java?rev=916712&r1=916711&r2=916712&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreAutoPreferences.java (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreAutoPreferences.java Fri Feb 26 15:16:46 2010
@@ -22,6 +22,8 @@
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Hashtable;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
@@ -53,24 +55,35 @@
 import com.ebay.sdk.ApiContext;
 import com.ebay.sdk.ApiException;
 import com.ebay.sdk.SdkException;
+import com.ebay.sdk.call.AddOrderCall;
 import com.ebay.sdk.call.AddDisputeCall;
 import com.ebay.sdk.call.GetSellingManagerSoldListingsCall;
 import com.ebay.sdk.call.GetUserCall;
 import com.ebay.sdk.call.LeaveFeedbackCall;
+import com.ebay.soap.eBLBaseComponents.AddOrderRequestType;
+import com.ebay.soap.eBLBaseComponents.AddOrderResponseType;
+import com.ebay.soap.eBLBaseComponents.AmountType;
 import com.ebay.sdk.call.RelistItemCall;
 import com.ebay.soap.eBLBaseComponents.AutomatedLeaveFeedbackEventCodeType;
+import com.ebay.soap.eBLBaseComponents.BuyerPaymentMethodCodeType;
 import com.ebay.soap.eBLBaseComponents.CommentTypeCodeType;
+import com.ebay.soap.eBLBaseComponents.CurrencyCodeType;
 import com.ebay.soap.eBLBaseComponents.DetailLevelCodeType;
 import com.ebay.soap.eBLBaseComponents.DisputeExplanationCodeType;
 import com.ebay.soap.eBLBaseComponents.DisputeReasonCodeType;
 import com.ebay.soap.eBLBaseComponents.FeedbackDetailType;
 import com.ebay.soap.eBLBaseComponents.ItemType;
+import com.ebay.soap.eBLBaseComponents.OrderType;
+import com.ebay.soap.eBLBaseComponents.ItemType;
 import com.ebay.soap.eBLBaseComponents.SellingManagerOrderStatusType;
 import com.ebay.soap.eBLBaseComponents.SellingManagerPaidStatusCodeType;
 import com.ebay.soap.eBLBaseComponents.SellingManagerShippedStatusCodeType;
 import com.ebay.soap.eBLBaseComponents.SellingManagerSoldListingsSortTypeCodeType;
 import com.ebay.soap.eBLBaseComponents.SellingManagerSoldOrderType;
 import com.ebay.soap.eBLBaseComponents.SellingManagerSoldTransactionType;
+import com.ebay.soap.eBLBaseComponents.TradingRoleCodeType;
+import com.ebay.soap.eBLBaseComponents.TransactionArrayType;
+import com.ebay.soap.eBLBaseComponents.TransactionType;
 import com.ebay.soap.eBLBaseComponents.UserType;
 
 public class EbayStoreAutoPreferences {
@@ -649,4 +662,187 @@
 
  return ServiceUtil.returnSuccess();
  }
+
+
+    public static Map<String, Object> runCombineOrders(DispatchContext dctx, Map<String,Object> context){
+        Map<String, Object>result = FastMap.newInstance();
+        LocalDispatcher dispatcher = dctx.getDispatcher();
+        GenericValue userLogin = (GenericValue) context.get("userLogin");
+        Delegator delegator = dctx.getDelegator();
+        Locale locale = (Locale) context.get("locale");
+        String productStoreId = (String) context.get("productStoreId");
+        try {
+            ApiContext apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
+            GetSellingManagerSoldListingsCall sellingManagerSoldListings = new GetSellingManagerSoldListingsCall(apiContext);
+            SellingManagerSoldOrderType[] sellingManagerSoldOrders = sellingManagerSoldListings.getSellingManagerSoldListings();
+            if(sellingManagerSoldOrders != null) {
+              int soldOrderLength = sellingManagerSoldOrders.length;
+              GenericValue ebayPref = delegator.findByPrimaryKey("EbayProductStorePref", UtilMisc.toMap("productStoreId", productStoreId, "autoPrefEnumId", "ENA_COMB_ORD"));
+              if (UtilValidate.isNotEmpty(ebayPref)) {
+
+                Timestamp beginDate = UtilDateTime.toTimestamp("01/01/2001 00:00:00");
+                Long daysCount = Long.parseLong(ebayPref.get("condition1").toString());
+                Hashtable h = new Hashtable();
+
+                for(int i=0; i<soldOrderLength; i++){
+                    SellingManagerSoldOrderType sellingManagerSoldOrder = sellingManagerSoldOrders[i];
+                    String buyerId = sellingManagerSoldOrder.getBuyerID().toString();
+                    List<Map<String, Object>> soldGroupList = FastList.newInstance();
+                    Map<String, Object> mymap = FastMap.newInstance();
+                    mymap.put("group", "");
+                    mymap.put("soldorder", sellingManagerSoldOrder);
+                    if (h.size() > 0) {
+                        Enumeration enums = h.keys();
+                        String key = "";
+                        while (enums.hasMoreElements()) {
+                            key = (String)enums.nextElement();
+                            List<Map<String, Object>> tempList = (List<Map<String, Object>>) h.get(key);
+                            if (key.equals(buyerId)) {
+                                key = buyerId;
+                                tempList.add(mymap);
+                                h.put(buyerId, tempList);
+                            }
+                        }
+                        if (!key.equals(buyerId)) {
+                            soldGroupList.clear();
+                            soldGroupList.add(mymap);
+                            h.put(buyerId, soldGroupList);
+                        }
+                    } else {
+                        soldGroupList.add(mymap);
+                        h.put(buyerId, soldGroupList);
+                    }
+                }
+
+                Enumeration enums = h.keys();
+                while (enums.hasMoreElements()) {
+                    int groupRunning = 0;
+                    String key = (String)enums.nextElement();
+                    List<Map<String, Object>> soldGroupList = (List<Map<String, Object>>) h.get(key);
+                    int maxItems = Integer.parseInt(ebayPref.get("condition2").toString());
+
+                    if (soldGroupList.size() > 1) {
+                        for (int j=0;j<soldGroupList.size();j++) {
+                            Map<String, Object> myMap = (Map<String, Object>) soldGroupList.get(j);
+                            SellingManagerSoldOrderType soldorder = (SellingManagerSoldOrderType) myMap.get("soldorder");
+                            Timestamp createdate = UtilDateTime.toTimestamp(soldorder.getCreationTime().getTime());
+                            if(myMap.get("group").toString().length()==0) beginDate = createdate;
+                            beginDate = findStartDate(beginDate, soldGroupList);
+                             runCheckAndGroup(groupRunning, beginDate, daysCount, soldGroupList);
+                             groupRunning++;
+                        }
+
+                        int x = 0;
+                        while (x<groupRunning) {
+                            OrderType order = new OrderType();
+                            order.setCreatingUserRole(TradingRoleCodeType.SELLER);
+                            BuyerPaymentMethodCodeType[] buyerPayment = new BuyerPaymentMethodCodeType[1];
+                            buyerPayment[0] = BuyerPaymentMethodCodeType.CASH_ON_PICKUP;
+                            order.setPaymentMethods(buyerPayment);
+                            TransactionArrayType transactionArr = new TransactionArrayType();
+                            List translist = FastList.newInstance();
+
+                            AmountType total = new AmountType();
+                            double totalAmt = 0.0;
+                            CurrencyCodeType currencyId = null;
+                            int totalQty = 0;
+
+                            for (int j=0;j<soldGroupList.size();j++) {
+                                Map<String, Object> myMap = (Map<String, Object>) soldGroupList.get(j);
+                                if (UtilValidate.isNotEmpty(myMap.get("group"))) {
+                                    if(x == Integer.parseInt(myMap.get("group").toString())){
+                                        SellingManagerSoldOrderType sellingManagerSoldOrder = (SellingManagerSoldOrderType) myMap.get("soldorder");
+                                        String buyerId = sellingManagerSoldOrder.getBuyerID().toString();
+                                        int qty = sellingManagerSoldOrder.getTotalQuantity();
+                                        totalQty = totalQty + qty;
+                                        if (key.equals(buyerId) && (UtilValidate.isEmpty(sellingManagerSoldOrder.getOrderStatus().getPaidTime()))) {
+                                            double totalAmount = 0.0;
+                                            if (UtilValidate.isNotEmpty(sellingManagerSoldOrder.getTotalAmount())) {
+                                                totalAmount = sellingManagerSoldOrder.getTotalAmount().getValue();
+                                                currencyId = sellingManagerSoldOrder.getTotalAmount().getCurrencyID();
+                                            } else {
+                                                totalAmount = sellingManagerSoldOrder.getSalePrice().getValue();
+                                                currencyId = sellingManagerSoldOrder.getSalePrice().getCurrencyID();
+                                            }
+                                            //Combine
+                                            totalAmt = totalAmt + totalAmount;
+                                            SellingManagerSoldTransactionType[] sellingManagerSoldTransactions = sellingManagerSoldOrder.getSellingManagerSoldTransaction();
+                                            //set transaction
+                                            for (int count=0; count<sellingManagerSoldTransactions.length; count++) {
+                                                SellingManagerSoldTransactionType sellingManagerSoldTransaction = sellingManagerSoldTransactions[count];
+                                                TransactionType transtype = new TransactionType();
+                                                ItemType itemtype = new ItemType();
+                                                if (UtilValidate.isNotEmpty(sellingManagerSoldTransaction.getItemID())) {
+                                                    itemtype.setItemID(sellingManagerSoldTransaction.getItemID());
+                                                    transtype.setItem(itemtype);
+                                                    transtype.setTransactionID(sellingManagerSoldTransaction.getTransactionID().toString());
+                                                    translist.add(transtype);
+                                                }
+                                           }
+                                        }
+                                    }
+                                }
+                            }
+                            if (totalQty < maxItems) {
+                                total.setValue(totalAmt);
+                                total.setCurrencyID(currencyId);
+                                TransactionType[] transArr = new TransactionType[translist.size()];
+                                for (int counter=0; counter<translist.size(); counter++){
+                                    transArr[counter] = (TransactionType)translist.get(counter);
+                                }
+                                transactionArr.setTransaction(transArr);
+                                if (transactionArr.getTransactionLength() > 1) {
+                                    order.setTotal(total);
+                                    order.setTransactionArray(transactionArr);
+                                    AddOrderCall call = new AddOrderCall(apiContext);
+                                    AddOrderRequestType req = new AddOrderRequestType();
+                                    AddOrderResponseType resp = null;
+                                    req.setOrder(order);
+                                    resp = (AddOrderResponseType)call.execute(req);
+                                    if(resp != null && "SUCCESS".equals(resp.getAck().toString())){
+                                       String orderId = resp.getOrderID();
+                                       Debug.log(":: new order id is = "+orderId);
+                                    }
+                                }
+                            }
+                            x++;
+                        }
+                    }
+                }
+              }
+            }
+           result = ServiceUtil.returnSuccess();
+       } catch (GenericServiceException e) {
+                result = ServiceUtil.returnError(e.getMessage());
+       } catch (Exception e) {
+            return ServiceUtil.returnError(e.getMessage());
+        }
+        return result;
+    }
+
+    public static Timestamp findStartDate(Timestamp lessStartTimestamp, List<Map<String, Object>> inList) {
+        for (Map<String,Object> inMap : inList){
+            SellingManagerSoldOrderType soldorder = (SellingManagerSoldOrderType) inMap.get("soldorder");
+            Timestamp createTimestamp = UtilDateTime.toTimestamp(soldorder.getCreationTime().getTime());
+            String group = (String) inMap.get("group");
+            if (createTimestamp.before(lessStartTimestamp) && group.length() == 0) {
+                lessStartTimestamp = createTimestamp;
+            }
+        }
+        return lessStartTimestamp;
+    }
+
+    public static void runCheckAndGroup(int groupRunning,Timestamp startTimestamp, long countDays, List<Map<String, Object>> inList) {
+        Timestamp endDate = UtilDateTime.getDayEnd(UtilDateTime.toTimestamp(startTimestamp), countDays);
+        for (Map<String,Object> inMap : inList) {
+            String group = (String) inMap.get("group").toString();
+            SellingManagerSoldOrderType soldorder = (SellingManagerSoldOrderType) inMap.get("soldorder");
+            if (group.length() == 0) {
+                Timestamp createtimestamp = UtilDateTime.toTimestamp(soldorder.getCreationTime().getTime());
+                if (((createtimestamp.equals(startTimestamp)) || (createtimestamp.after(startTimestamp))) && (createtimestamp.before(endDate))) {
+                   inMap.put("group", ""+groupRunning);
+                }
+            }
+        }
+    }
 }

Modified: ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml?rev=916712&r1=916711&r2=916712&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml Fri Feb 26 15:16:46 2010
@@ -155,6 +155,12 @@
         <response name="success" type="view" value="AutomationPreferences"/>
         <response name="error" type="view" value="AutomationPreferences"/>
     </request-map>
+    <request-map uri="settingCombineOrders">
+        <security https="true" auth="true"/>
+        <event type="simple" path="component://ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml" invoke="settingCombineOrders"/>
+        <response name="success" type="request-redirect" value="automationPreferences"/>
+        <response name="error" type="view" value="AutomationPreferences"/>
+    </request-map>
     <!-- Block item out of stock -->
     <request-map uri="blockItemOutOfStock">
         <security https="true" auth="true"/>

Modified: ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml?rev=916712&r1=916711&r2=916712&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerForms.xml Fri Feb 26 15:16:46 2010
@@ -65,7 +65,7 @@
         <field name="condition3" title="${uiLabelMap.EbayExplanation}">
  <drop-down >
          <list-options key-name="explanationCode" list-name="explanations" description="${value}"/>
-         </drop-down>        
+         </drop-down>
         </field>
         <field name="serviceName"><hidden value="${serviceName2}"/></field>
         <field name="autoPrefEnumId"><hidden value="${autoPrefEnumId2}"/></field>
@@ -332,5 +332,19 @@
         </field>
         <field name="submitButton" title="${uiLabelMap.CommonApply}"><submit button-type="button"/></field>
     </form>
-    
+    <!-- Combine Orders Setting -->
+    <form name="combineOrdersSetting" type="single" target="settingCombineOrders" header-row-style="header-row" default-table-style="basic-table">
+        <actions>
+            <entity-one entity-name="EbayProductStorePref" value-field="ebayPrefCombine">
+                <field-map field-name="productStoreId" from-field="parameters.productStoreId"/>
+                <field-map field-name="autoPrefEnumId" value="EBAY_AUTO_COMB_ORD"/>
+            </entity-one>
+            <set field="isRunCombineOrdersJob"  type="String" from-field="ebayPrefCombine.enabled"/>
+        </actions>
+        <field name="productStoreId"><hidden value="${parameters.productStoreId}"/></field>
+        <field name="isRunCombineOrdersJob" position="1" title="Enable combine orders in eBay"><check></check></field>
+        <field name="condition1" title="Allow no more than" tooltip-style="h3" tooltip="days between the first and last transactions to add in order"><text size="3" default-value="${ebayPrefCombine.condition1}" maxlength="2"></text></field>
+        <field name="condition2" title="Allow no more than" tooltip-style="h3" tooltip="items per order"><text size="3" default-value="${ebayPrefCombine.condition2}" maxlength="2"></text></field>
+        <field name="submitButton" title="${uiLabelMap.CommonSave}"><submit button-type="button"/></field>
+    </form>
 </forms>
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml?rev=916712&r1=916711&r2=916712&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/widget/EbaySellingManagerScreens.xml Fri Feb 26 15:16:46 2010
@@ -247,6 +247,7 @@
                 <decorator-screen name="SellingManagerDecorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="body">
                         <decorator-section-include name="body"/>
+                        <include-screen name="combinedOrderSetting"/>
                         <include-screen name="AutomationRelistSoldItems"/>
                         <include-screen name="AutomationDispute"/>
                         <screenlet title="${uiLabelMap.EbayTxtAutoPositiveFeedbackBuyer}" id="autoPositiveFeedback" collapsible="false" initially-collapsed="true">
@@ -312,11 +313,20 @@
             </widgets>
         </section>
     </screen>
+    <screen name="combinedOrderSetting">
+        <section>
+            <widgets>
+                <screenlet title="Combine Orders Setting">
+                    <include-form name="combineOrdersSetting" location="component://ebaystore/widget/EbaySellingManagerForms.xml"/>
+                </screenlet>
+            </widgets>
+        </section>
+    </screen>
     <!-- Sold -->
    <screen name="EbaySoldListing">
         <section>
             <actions>
-                <set field="sellingManagerItem" value="soldListing"/>                
+                <set field="sellingManagerItem" value="soldListing"/>
             </actions>
             <widgets>
                <decorator-screen name="SellingManagerDecorator" location="${parameters.mainDecoratorLocation}">