Author: hansbak
Date: Tue Feb 16 11:09:12 2010
New Revision: 910474

URL: http://svn.apache.org/viewvc?rev=910474&view=rev
Log:
Ebaystore update:
1. function for  open unpaid item dispute when items status is not unpaid or 
check out not complete.
2.  when user select unpaid at the item the system will show section for add 
reason and explaination for dispute.

Added:
    
ofbiz/trunk/specialpurpose/ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml
    
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/SoldAction.groovy
Modified:
    ofbiz/trunk/specialpurpose/ebaystore/config/EbayStoreUiLabels.xml
    ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml
    ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java
    ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml
    ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreForms.xml
    ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreMenus.xml
    ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreScreens.xml

Modified: ofbiz/trunk/specialpurpose/ebaystore/config/EbayStoreUiLabels.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/config/EbayStoreUiLabels.xml?rev=910474&r1=910473&r2=910474&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/config/EbayStoreUiLabels.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/config/EbayStoreUiLabels.xml Tue Feb 
16 11:09:12 2010
@@ -196,6 +196,9 @@
     <property key="eBayFixedPrice">
         <value xml:lang="en">Fixed Price</value>
     </property>
+    <property key="EbayStoreOpenUnpaidItemDispute">
+        <value xml:lang="en">Open unpaid item dispute</value>
+    </property>
     <property key="requireEbayInventory">
         <value xml:lang="en">Require eBay Inventory</value>
     </property>

Added: 
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=910474&view=auto
==============================================================================
--- 
ofbiz/trunk/specialpurpose/ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml
 (added)
+++ 
ofbiz/trunk/specialpurpose/ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml
 Tue Feb 16 11:09:12 2010
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    
+    http://www.apache.org/licenses/LICENSE-2.0
+    
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd";>
+    <simple-method method-name="checkEbayAction" short-description="Check eBay 
Action">
+       <set field="resultResponse" from-field="parameters.action"/>
+       <return response-code="${resultResponse}"/>
+    </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=910474&r1=910473&r2=910474&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/servicedef/services.xml Tue Feb 16 
11:09:12 2010
@@ -168,6 +168,8 @@
     <service name="getEbaySoldItems" engine="java"  transaction-timeout="3600"
         location="org.ofbiz.ebaystore.EbayStore" invoke="getEbaySoldItems" 
auth="true">
         <attribute name="productStoreId" mode="IN" type="String" 
optional="false"/>
+        <attribute name="status" mode="IN" type="String" optional="true"/>
+        <attribute name="period" mode="IN" type="String" optional="true"/>
         <attribute name="soldItems" mode="OUT" type="List" optional="true"/>
     </service>
     <service name="automaticEbayRelistSoldItems" engine="java"  
transaction-timeout="3600"
@@ -283,10 +285,40 @@
         <attribute type="String" mode="IN" name="paymentMoneyXferAccepted" 
optional="true"/>
         <attribute type="String" mode="IN" name="paymentPersonalCheck" 
optional="true"/>
     </service>
-    
     <service name="updateEbayProductStoreInventory" 
default-entity-name="EbayProductStoreInventory" engine="entity-auto" 
invoke="update" auth="true">
         <description>Update EbayProductStoreInventory entity</description>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
+    <service name="addEbayDispute" engine="java"  transaction-timeout="3600"
+        location="org.ofbiz.ebaystore.EbayStore" invoke="addEbayDispute" 
auth="true">
+        <attribute name="productStoreId" mode="IN" type="String" 
optional="false"/>
+        <attribute name="itemId" mode="IN" type="String" optional="false"/>
+        <attribute name="transactionId" mode="IN" type="String" 
optional="false"/>
+        <attribute name="disputeReasonCodeType" mode="IN" type="String" 
optional="false"/>
+        <attribute name="disputeExplanationCodeType" mode="IN" type="String" 
optional="false"/>
+        <attribute name="disputeId" mode="OUT" type="String" optional="false"/>
+    </service>
+    <service name="checkEbaySecondChanceOffer" engine="java"  
transaction-timeout="3600"
+        location="org.ofbiz.ebaystore.EbayStore" 
invoke="checkEbaySecondChanceOffer" auth="true">
+        <attribute name="productStoreId" mode="IN" type="String" 
optional="false"></attribute>
+       <attribute name="itemId" mode="IN" type="String" 
optional="false"></attribute>
+       <attribute name="isSecondChance" mode="OUT" type="Boolean" 
optional="false"></attribute>
+    </service>
+    <service name="addEbaySecondChanceOffer" engine="java"  
transaction-timeout="3600"
+        location="org.ofbiz.ebaystore.EbayStore" 
invoke="addEbaySecondChanceOffer" auth="true">
+        <attribute name="productStoreId" mode="IN" type="String" 
optional="false"/>
+        <attribute name="duration" mode="IN" type="String" optional="false"/>
+        <attribute name="itemId" mode="IN" type="String" optional="false"/>
+        <attribute name="duration" mode="IN" type="String" optional="false"/>
+        <attribute name="recipientBidderUserId" mode="IN" type="String" 
optional="false"/>
+       <attribute name="buyItNowPrice" mode="IN" type="String" 
optional="true"/>
+       <attribute name="sellerMessage" mode="IN" type="String" 
optional="true"/>
+    </service>
+    <service name="getEbayAllBidders" engine="java"  transaction-timeout="3600"
+        location="org.ofbiz.ebaystore.EbayStore" invoke="getEbayAllBidders" 
auth="true">
+        <attribute name="productStoreId" mode="IN" type="String" 
optional="false"/>
+        <attribute name="itemId" mode="IN" type="String" optional="false"/>
+       <attribute name="bidders" mode="OUT" type="List" optional="true"/>
+    </service>
 </services>
\ No newline at end of file

Modified: 
ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java?rev=910474&r1=910473&r2=910474&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java 
(original)
+++ ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStore.java 
Tue Feb 16 11:09:12 2010
@@ -27,6 +27,7 @@
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
@@ -73,9 +74,12 @@
 import com.ebay.sdk.SdkException;
 import com.ebay.sdk.SdkSoapException;
 import com.ebay.sdk.call.*;
+import com.ebay.sdk.helper.ui.ControlTagItem;
 import com.ebay.soap.eBLBaseComponents.AbstractRequestType;
 import com.ebay.soap.eBLBaseComponents.DeleteSellingManagerTemplateRequestType;
 import 
com.ebay.soap.eBLBaseComponents.DeleteSellingManagerTemplateResponseType;
+import com.ebay.soap.eBLBaseComponents.DisputeExplanationCodeType;
+import com.ebay.soap.eBLBaseComponents.DisputeReasonCodeType;
 import com.ebay.soap.eBLBaseComponents.GetSellingManagerInventoryRequestType;
 import com.ebay.soap.eBLBaseComponents.GetSellingManagerInventoryResponseType;
 import com.ebay.soap.eBLBaseComponents.GetStoreOptionsRequestType;
@@ -114,6 +118,8 @@
 import com.ebay.soap.eBLBaseComponents.StoreThemeArrayType;
 import com.ebay.soap.eBLBaseComponents.StoreThemeType;
 import com.ebay.soap.eBLBaseComponents.StoreType; 
+import com.ebay.soap.eBLBaseComponents.SummaryFrequencyCodeType;
+import com.ebay.soap.eBLBaseComponents.SummaryWindowPeriodCodeType;
 import com.ebay.soap.eBLBaseComponents.TaskStatusCodeType;
 
 import java.sql.Timestamp;
@@ -1421,45 +1427,64 @@
                        GetSellingManagerSoldListingsCall 
sellingManagerSoldListings = new GetSellingManagerSoldListingsCall(apiContext);
                        
sellingManagerSoldListings.getSellingManagerSoldListings();
                        SellingManagerSoldOrderType[] sellingManagerSoldOrders 
= sellingManagerSoldListings.getReturnedSaleRecord();
-                       if(sellingManagerSoldOrders != null){
+                       if (sellingManagerSoldOrders != null) {
                                int soldOrderLength = 
sellingManagerSoldOrders.length;
-                               for(int i=0; i<soldOrderLength; i++){
+                               for (int i=0; i<soldOrderLength; i++) {
                                        SellingManagerSoldOrderType 
sellingManagerSoldOrder = sellingManagerSoldOrders[i];
-                                       if(sellingManagerSoldOrder != null){
+                                       if (sellingManagerSoldOrder != null) {
                                                
SellingManagerSoldTransactionType[] sellingManagerSoldTransactions = 
sellingManagerSoldOrder.getSellingManagerSoldTransaction();
                                                int 
sellingManagerSoldTransactionLength = sellingManagerSoldTransactions.length;
-                                               for(int 
j=0;j<sellingManagerSoldTransactionLength;j++){
+                                               for (int j=0; j < 
sellingManagerSoldTransactionLength; j++) {
                                                        Map<String, Object> 
entry = FastMap.newInstance();
                                                        
SellingManagerSoldTransactionType sellingManagerSoldTransaction = 
sellingManagerSoldTransactions[j];
                                                        
entry.put("itemId",sellingManagerSoldTransaction.getItemID());
                                                        
entry.put("title",sellingManagerSoldTransaction.getItemTitle());
-                                                       if(soldItems!=null){
-                                                               int 
soldItemsLength = soldItems.size();
-                                                               boolean 
checkStatus = false;
-                                                               for(int 
check=0;check<soldItemsLength;check++){
-                                                                       Map 
checkMap = (Map)soldItems.get(check);
-                                                                       
if(checkMap.get("itemId").equals(entry.get("itemId"))){
-                                                                               
checkStatus = true;
-                                                                       }
+                                                       
entry.put("transactionId",sellingManagerSoldTransaction.getTransactionID());
+                                                       
entry.put("quantity",sellingManagerSoldTransaction.getQuantitySold());
+                                                       
entry.put("listingType",sellingManagerSoldTransaction.getListingType().value());
+
+                                                       String unpaidItemStatus 
= null;
+                                                       if 
(sellingManagerSoldOrder.getUnpaidItemStatus() != null) {
+                                                               
unpaidItemStatus  = sellingManagerSoldOrder.getUnpaidItemStatus().value();
+                                                       }
+                                                       
entry.put("unpaidItemStatus", unpaidItemStatus);
+                                                       Date creationTime = 
null;
+                                                       if 
(sellingManagerSoldOrder.getCreationTime() != null) {
+                                                               creationTime = 
sellingManagerSoldOrder.getCreationTime().getTime();
+                                                       }
+                                                       
entry.put("creationTime", creationTime);
+                                                       double totalAmount = 0;
+                                                       if 
(sellingManagerSoldOrder.getTotalAmount() != null) {
+                                                               totalAmount  = 
sellingManagerSoldOrder.getTotalAmount().getValue();
+                                                       }
+                                                       
entry.put("totalAmount", totalAmount);
+                                                       if 
(sellingManagerSoldOrder.getSalePrice() != null) {
+                                                               
entry.put("salePrice", sellingManagerSoldOrder.getSalePrice().getValue());
+                                                       }
+                                                       Date paidTime = null;
+                                                       String checkoutStatus = 
null;
+                                                       if 
(sellingManagerSoldOrder.getOrderStatus() != null) {
+                                                               if 
(sellingManagerSoldOrder.getOrderStatus().getPaidTime() != null) {
+                                                                       
paidTime  = sellingManagerSoldOrder.getOrderStatus().getPaidTime().getTime();
                                                                }
-                                                               
if(!checkStatus){
-                                                                       
soldItems.add(entry);
+                                                               if 
(sellingManagerSoldOrder.getOrderStatus().getCheckoutStatus() != null) {
+                                                                       
checkoutStatus  = 
sellingManagerSoldOrder.getOrderStatus().getCheckoutStatus().value();
                                                                }
-                                                       }else{
-                                                               
soldItems.add(entry);
                                                        }
+                                                       entry.put("paidTime", 
paidTime);
+                                                       
entry.put("checkoutStatus", checkoutStatus);
+                                                       soldItems.add(entry);
                                                }
                                        }
                                }
                        }
                        result.put("soldItems", soldItems);
                } catch (Exception e) {
-                       // TODO Auto-generated catch block
                        return ServiceUtil.returnError(e.getMessage());
                }
                return result;
        }
-       public static Map<String, Object> 
automaticEbayRelistSoldItems(DispatchContext dctx, Map<String, ? extends 
Object> context){
+       public static Map<String, Object> 
automaticEbayRelistSoldItems(DispatchContext dctx, Map<String, ? extends 
Object> context) {
                Map<String, Object>result = FastMap.newInstance();
                LocalDispatcher dispatcher = dctx.getDispatcher();
                GenericValue userLogin = (GenericValue) 
context.get("userLogin");
@@ -1469,39 +1494,39 @@
                        Map<String, Object>serviceMap = FastMap.newInstance();
                        serviceMap.put("userLogin", userLogin);
                        List<GenericValue>stores = 
delegator.findByAnd("ProductStore", UtilMisc.toMap());
-                       for(int 
storeCount=0;storeCount<stores.size();storeCount++){
+                       for(int 
storeCount=0;storeCount<stores.size();storeCount++) {
                                String productStoreId = 
stores.get(storeCount).getString("productStoreId");
                                serviceMap.put("productStoreId", 
productStoreId);
                                Map eBayUserLogin = 
dispatcher.runSync("getEbayStoreUser", serviceMap);
                                String eBayUserLoginId = 
(String)eBayUserLogin.get("userLoginId");
-                               if(eBayUserLoginId != null){
+                               if(eBayUserLoginId != null) {
                                        List<GenericValue>jobs = 
delegator.findByAnd("JobSandbox", UtilMisc.toMap("authUserLoginId", 
eBayUserLoginId));
-                                       if(jobs.size() != 0){
+                                       if(jobs.size() != 0) {
                                                GenericValue job = jobs.get(0);
                                                Timestamp startDateTime = 
(Timestamp)job.get("startDateTime");
                                                Timestamp finishDateTime = 
(Timestamp)job.get("finishDateTime");
                                                //check can re-list items by 
eBay account setting
                                                boolean canRelistItems = false;
                                                Timestamp nowTime = 
UtilDateTime.nowTimestamp();
-                                               
if(startDateTime!=null&&finishDateTime!=null){
-                                                       
if(startDateTime.before(nowTime) && finishDateTime.after(nowTime)){
+                                               
if(startDateTime!=null&&finishDateTime!=null) {
+                                                       
if(startDateTime.before(nowTime) && finishDateTime.after(nowTime)) {
                                                                canRelistItems 
= true;
                                                        }
-                                               }else 
if(startDateTime!=null&&finishDateTime==null){
-                                                       
if(startDateTime.before(nowTime)){
+                                               }else 
if(startDateTime!=null&&finishDateTime==null) {
+                                                       
if(startDateTime.before(nowTime)) {
                                                                canRelistItems 
= true;
                                                        }
                                                }
-                                               if(canRelistItems){
+                                               if(canRelistItems) {
                                                        //save sold items to 
OFbBiz product entity
                                                        Map resultService = 
dispatcher.runSync("getEbaySoldItems", serviceMap);
                                                        List soldItems = 
(List)resultService.get("soldItems");
-                                                       if(soldItems.size()!=0){
-                                                               for(int 
itemCount=0;itemCount<soldItems.size();itemCount++){
+                                                       if(soldItems.size()!=0) 
{
+                                                               for(int 
itemCount=0;itemCount<soldItems.size();itemCount++) {
                                                                        Map 
soldItemMap = (Map)soldItems.get(itemCount);
-                                                                       
if(UtilValidate.isNotEmpty(soldItemMap.get("itemId"))){
+                                                                       
if(UtilValidate.isNotEmpty(soldItemMap.get("itemId"))) {
                                                                                
GenericValue productCheck = delegator.findByPrimaryKey("Product", 
UtilMisc.toMap("productId", soldItemMap.get("itemId")));
-                                                                               
if(productCheck == null){
+                                                                               
if(productCheck == null) {
                                                                                
        GenericValue product = delegator.makeValue("Product");
                                                                                
        product.set("productId", soldItemMap.get("itemId"));
                                                                                
        product.set("internalName", soldItemMap.get("title"));
@@ -1518,10 +1543,10 @@
                                                        resultService = 
dispatcher.runSync("getEbayActiveItems", serviceMap);
                                                        List activeItems = 
(List)resultService.get("activeItems");
                                                        List<String> 
activeItemMaps = FastList.newInstance();
-                                                       
if(activeItems.size()!=0){
-                                                               for(int 
itemCount=0;itemCount<activeItems.size();itemCount++){
+                                                       
if(activeItems.size()!=0) {
+                                                               for(int 
itemCount=0;itemCount<activeItems.size();itemCount++) {
                                                                        Map 
activeItemMap = (Map)activeItems.get(itemCount);
-                                                                       
if(UtilValidate.isNotEmpty(activeItemMap.get("itemId"))){
+                                                                       
if(UtilValidate.isNotEmpty(activeItemMap.get("itemId"))) {
                                                                                
activeItemMaps.add((String)activeItemMap.get("itemId"));
                                                                        }
                                                                }
@@ -1536,7 +1561,7 @@
                                                        EntityCondition andCond 
=  EntityCondition.makeCondition(andExpr, EntityOperator.AND);
                                
                                                        List itemsToRelist = 
delegator.findList("Product", andCond, null, null, null, false);
-                                                       if(itemsToRelist.size() 
!= 0){
+                                                       if(itemsToRelist.size() 
!= 0) {
                                                                //re-list sold 
items and not active
                                                                Map<String, 
Object> inMap = FastMap.newInstance();
                                                                
inMap.put("productStoreId", productStoreId);
@@ -1544,7 +1569,7 @@
                                                                Map<String, 
Object> resultUser = dispatcher.runSync("getEbayStoreUser", inMap);
                                                                String userID = 
(String)resultUser.get("userLoginId");
                                                                ApiContext 
apiContext = EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
-                                                               for(int 
itemRelist=0;itemRelist<itemsToRelist.size();itemRelist++){
+                                                               for(int 
itemRelist=0;itemRelist<itemsToRelist.size();itemRelist++) {
                                                                        
RelistItemCall relistItemCall = new RelistItemCall(apiContext);
                                                                        
ItemType itemToBeRelisted = new ItemType();
                                                                        
GenericValue product = (GenericValue)itemsToRelist.get(itemRelist);
@@ -1568,38 +1593,38 @@
        }
        
        /* ebay store block out of stock items */
-       public static Map<String,Object> getSellingInventory(DispatchContext 
dctx, Map<String,Object> context){
+       public static Map<String,Object> getSellingInventory(DispatchContext 
dctx, Map<String,Object> context) {
               Locale locale = (Locale) context.get("locale");
               Delegator delegator = dctx.getDelegator();
               Map<String,Object> result = FastMap.newInstance();
               GetSellingManagerInventoryRequestType req = new 
GetSellingManagerInventoryRequestType();
               GetSellingManagerInventoryResponseType resp =  null;
 
-              if(context.get("productStoreId") != null){
+              if(context.get("productStoreId") != null) {
                   GetSellingManagerInventoryCall call = new 
GetSellingManagerInventoryCall(EbayStoreHelper.getApiContext((String)context.get("productStoreId"),
 locale, delegator));
 
                   try {
                           Map<String,Object> ebayResp = FastMap.newInstance();
                       SellingManagerProductType[] 
returnedSellingManagerProductType = null;
                       resp = 
(GetSellingManagerInventoryResponseType)call.execute(req);
-                      if(resp != null && 
"SUCCESS".equals(resp.getAck().toString())){
+                      if(resp != null && 
"SUCCESS".equals(resp.getAck().toString())) {
                           returnedSellingManagerProductType  = 
resp.getSellingManagerProduct();
                           //result = ServiceUtil.returnSuccess("load store 
data success..");
-                          for (int 
i=0;i<returnedSellingManagerProductType.length;i++){
+                          for (int 
i=0;i<returnedSellingManagerProductType.length;i++) {
                              SellingManagerProductInventoryStatusType 
sellingProductInventory = 
returnedSellingManagerProductType[i].getSellingManagerProductInventoryStatus();
                              SellingManagerProductDetailsType prodDetailType = 
returnedSellingManagerProductType[i].getSellingManagerProductDetails();
                              Long productID = 
(Long)prodDetailType.getProductID();
                              int qty = prodDetailType.getQuantityAvailable();
 
-                             if (qty == 0){
+                             if (qty == 0) {
                                  SellingManagerTemplateDetailsArrayType 
sellingTempArr =  
returnedSellingManagerProductType[i].getSellingManagerTemplateDetailsArray();
                                  SellingManagerTemplateDetailsType[] 
selllingTempType = null;
-                                 if (UtilValidate.isNotEmpty(sellingTempArr)){
+                                 if (UtilValidate.isNotEmpty(sellingTempArr)) {
                                          selllingTempType = 
sellingTempArr.getSellingManagerTemplateDetails();
                                  }
 
-                                 if (selllingTempType.length > 0){
-                                         for (int 
j=0;j<selllingTempType.length;j++){
+                                 if (selllingTempType.length > 0) {
+                                         for (int 
j=0;j<selllingTempType.length;j++) {
                                          Long longTemplete = 
Long.parseLong(selllingTempType[j].getSaleTemplateID());
                                          DeleteSellingManagerTemplateCall 
tcall = new 
DeleteSellingManagerTemplateCall(EbayStoreHelper.getApiContext((String)context.get("productStoreId"),
 locale, delegator));
                                          
DeleteSellingManagerTemplateRequestType treq = new 
DeleteSellingManagerTemplateRequestType();
@@ -1607,7 +1632,7 @@
                                          treq.setSaleTemplateID(longTemplete);
 
                                          tresp = 
(DeleteSellingManagerTemplateResponseType) tcall.execute(treq);
-                                         if(tresp != null && 
"SUCCESS".equals(tresp.getAck().toString())){
+                                         if(tresp != null && 
"SUCCESS".equals(tresp.getAck().toString())) {
                                              ebayResp.put("TemplateID", 
tresp.getDeletedSaleTemplateID());
                                              ebayResp.put("TemplateName", 
tresp.getDeletedSaleTemplateName());
                                              result.put("itemBlocked", 
ebayResp);
@@ -1617,7 +1642,7 @@
                              }
                           }
                           result.put(ModelService.RESPONSE_MESSAGE, 
ModelService.RESPOND_SUCCESS);
-                          if 
(UtilValidate.isNotEmpty(ebayResp.get("TemplateID"))){
+                          if 
(UtilValidate.isNotEmpty(ebayResp.get("TemplateID"))) {
                                   result.put(ModelService.SUCCESS_MESSAGE, 
"block "+ebayResp.get("TemplateID")+" out of stock success..");
                           }else{
                                   result.put(ModelService.SUCCESS_MESSAGE, "no 
item out of stock");
@@ -1634,7 +1659,7 @@
               }
               return result;
           }
-    public static Map<String, Object> 
exportProductsFromEbayStore(DispatchContext dctx, Map context){
+    public static Map<String, Object> 
exportProductsFromEbayStore(DispatchContext dctx, Map context) {
         Map<String,Object> result = FastMap.newInstance();
         Locale locale = (Locale) context.get("locale");
         Delegator delegator = dctx.getDelegator();
@@ -1753,4 +1778,79 @@
         }
         return result;
     }
+    public static DisputeExplanationCodeType 
getEbayDisputeExplanationCodeType(String disputeExplanationCode) {
+       DisputeExplanationCodeType disputeExplanationCodeType = null;
+       if (disputeExplanationCode != null) {
+               if (disputeExplanationCode.equals("BUYER_HAS_NOT_RESPONDED")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.BUYER_HAS_NOT_RESPONDED;
+               } else if 
(disputeExplanationCode.equals("BUYER_REFUSED_TO_PAY")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.BUYER_REFUSED_TO_PAY;
+               } else if 
(disputeExplanationCode.equals("BUYER_RETURNED_ITEM_FOR_REFUND")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.BUYER_RETURNED_ITEM_FOR_REFUND;
+               } else if 
(disputeExplanationCode.equals("UNABLE_TO_RESOLVE_TERMS")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.UNABLE_TO_RESOLVE_TERMS;
+               } else if 
(disputeExplanationCode.equals("BUYER_PURCHASING_MISTAKE")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.BUYER_PURCHASING_MISTAKE;
+               } else if 
(disputeExplanationCode.equals("SHIP_COUNTRY_NOT_SUPPORTED")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.SHIP_COUNTRY_NOT_SUPPORTED;
+               } else if 
(disputeExplanationCode.equals("SHIPPING_ADDRESS_NOT_CONFIRMED")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.SHIPPING_ADDRESS_NOT_CONFIRMED;
+               } else if 
(disputeExplanationCode.equals("PAYMENT_METHOD_NOT_SUPPORTED")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.PAYMENT_METHOD_NOT_SUPPORTED;
+               } else if 
(disputeExplanationCode.equals("BUYER_NO_LONGER_REGISTERED")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.BUYER_NO_LONGER_REGISTERED;
+               } else if 
(disputeExplanationCode.equals("BUYER_NO_LONGER_REGISTERED")) {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.BUYER_NO_LONGER_REGISTERED;
+               } else {
+                               disputeExplanationCodeType = 
DisputeExplanationCodeType.OTHER_EXPLANATION;
+               }
+       }else{
+                       disputeExplanationCodeType = 
DisputeExplanationCodeType.OTHER_EXPLANATION;
+       }
+       return disputeExplanationCodeType;
+    }
+    public static DisputeReasonCodeType getEbayDisputeReasonCodeType(String 
disputeReasonCode) {
+       DisputeReasonCodeType disputeReasonCodeType = null;
+       if (disputeReasonCode != null) {
+               if (disputeReasonCode.equals("TRANSACTION_MUTUALLY_CANCELED")) {
+                       disputeReasonCodeType = 
DisputeReasonCodeType.TRANSACTION_MUTUALLY_CANCELED;
+               } else if (disputeReasonCode.equals("BUYER_HAS_NOT_PAID")) {
+                       disputeReasonCodeType = 
DisputeReasonCodeType.BUYER_HAS_NOT_PAID;
+               }
+       }
+               return disputeReasonCodeType;
+    }
+       public static Map<String, Object> addEbayDispute(DispatchContext dctx, 
Map<String, ? extends 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");
+               List soldItems = FastList.newInstance();
+               try {
+                       String itemId = (String) context.get("itemId");
+                       String transactionId = (String) 
context.get("transactionId");
+                       DisputeReasonCodeType drct = 
EbayStore.getEbayDisputeReasonCodeType((String)context.get("disputeReasonCodeType"));
+                   DisputeExplanationCodeType dect = 
EbayStore.getEbayDisputeExplanationCodeType((String) 
context.get("disputeExplanationCodeType"));
+                   DetailLevelCodeType[] detailLevels = new 
DetailLevelCodeType[] {
+                               DetailLevelCodeType.RETURN_ALL,
+                               DetailLevelCodeType.ITEM_RETURN_ATTRIBUTES,
+                               DetailLevelCodeType.ITEM_RETURN_DESCRIPTION
+                       };
+                   ApiContext apiContext = 
EbayStoreHelper.getApiContext(productStoreId, locale, delegator);
+                   AddDisputeCall api = new AddDisputeCall(apiContext);
+                   api.setDetailLevel(detailLevels);
+                   api.setItemID(itemId);
+                   api.setTransactionID(transactionId);
+                   api.setDisputeExplanation(dect);
+                   api.setDisputeReason(drct);
+
+                   String disputeId = api.addDispute();
+                   result.put("disputeId", disputeId);
+               } catch (Exception e) {
+            return ServiceUtil.returnError(e.getMessage());
+               }
+               return result;
+       }
 }
\ No newline at end of file

Added: 
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/SoldAction.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/SoldAction.groovy?rev=910474&view=auto
==============================================================================
--- 
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/SoldAction.groovy
 (added)
+++ 
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/SoldAction.groovy
 Tue Feb 16 11:09:12 2010
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.ofbiz.base.util.*;
+import javolution.util.FastList;
+import javolution.util.FastMap;
+
+actionList = FastList.newInstance();
+hasAction = false;
+
+if (unpaidItemStatus == null && paidTime == null && checkoutStatus != 
"CheckoutComplete") {
+       inMap = FastMap.newInstance();
+       inMap.put("action","openUnpaid");
+       inMap.put("actionName","Open Unpaid");
+       actionList.add(inMap);
+       hasAction = true;
+}
+context.actionList = actionList;
+context.hasAction = hasAction;
\ No newline at end of file

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=910474&r1=910473&r2=910474&view=diff
==============================================================================
--- 
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml 
(original)
+++ 
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml 
Tue Feb 16 11:09:12 2010
@@ -23,6 +23,7 @@
     <include 
location="component://product/webapp/catalog/WEB-INF/controller.xml"/>
     <include location="component://ebay/webapp/ebay/WEB-INF/controller.xml"/>
     
+    
     <description>eBay Component Site Configuration File</description>
     <!-- request mappings -->
     <request-map uri="main">
@@ -102,7 +103,6 @@
         <response name="success" type="view" value="LeaveFeedback"/>
         <response name="error" type="view" value="LeaveFeedback"/>
     </request-map>
-    
     <!-- Automation Preferences -->
     <request-map uri="automationPreferences">
         <security auth="true" https="true"/>
@@ -186,6 +186,48 @@
         <response name="success" type="view" value="exportProductListing"/>
         <response name="error" type="view" value="exportProductListing"/>
     </request-map>
+       <!-- Active -->
+    <request-map uri="activeListing">
+       <security auth="true" https="true"/>
+       <response name="success" type="view" value="ActiveListing"/>
+    </request-map>
+    <request-map uri="assignAutomaticRule">
+       <security auth="true" https="true"/>
+       <response name="success" type="view" value="AssignAutomaticRule"/>
+    </request-map>
+    <!-- Sold -->
+    <request-map uri="soldListing">
+       <security auth="true" https="true"/>
+       <response name="success" type="view" value="SoldListing"/>
+    </request-map>
+    <request-map uri="openUnpaid">
+       <security auth="true" https="true"/>
+       <response name="success" type="view" value="OpenUnpaid"/>
+    </request-map>
+    <request-map uri="addDispute">
+       <security auth="true" https="true"/>
+       <event type="service" invoke="addEbayDispute"/>
+       <response name="success" type="request-redirect" value="soldListing">
+               <redirect-parameter name="productStoreId"/>
+       </response>
+       <response name="error" type="view" value="OpenUnpaid"/>
+    </request-map>
+    <request-map uri="doAction">
+       <security auth="true" https="true"/>
+       <event type="simple" 
path="component://ebaystore/script/org/ofbiz/ebaystore/EbayStoreEvents.xml" 
invoke="checkEbayAction"/>
+       <response name="makeSecondChanceOffer" type="request" 
value="makeSecondChanceOffer"/>
+       <response name="openUnpaid" type="request" value="openUnpaid"/>
+    </request-map>
+    <request-map uri="makeSecondChanceOffer">
+       <security auth="true" https="true"/>
+       <response name="success" type="view" value="MakeSecondChanceOffer"/>
+    </request-map>
+    <request-map uri="addEbaySecondChanceOffer">
+       <security auth="true" https="true"/>
+       <event type="service" invoke="addEbaySecondChanceOffer"/>
+       <response name="error" type="view" value="MakeSecondChanceOffer"/>
+       <response name="success" type="view" value="SoldListing"/>
+    </request-map>
        <!-- end of request mappings -->
     
     <!-- View Mappings -->
@@ -197,13 +239,11 @@
     <!-- ebay account -->
     <view-map name="NewEbayAccount" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#NewEbayAccount"/>
     <view-map name="EbayAccount" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#EbayAccount"/>
-  
     <!-- feedback -->
     <view-map name="FeedbackStore" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#FeedbackStore"/>
     <view-map name="Feedback" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#Feedback"/>    
     <view-map name="LeaveFeedback" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#LeaveFeedback"/> 
-    
-    <!-- AutomationPreferences -->
+   <!-- AutomationPreferences -->
     <view-map name="AutomationPreferences" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#EbayAutomationPreferences"/>
     <!-- block out of stock -->
     <view-map name="blockItemOutOfStock" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#blockItemOutOfStock"/>
@@ -215,5 +255,12 @@
     
     <view-map name="exportProductListing" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#exportProductListing"/>
     <view-map name="productsearch" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#productsearchexport"/>
+       <!-- Active -->    
+       <view-map name="ActiveListing" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#EbayActiveListing"/>
+       <view-map name="AssignAutomaticRule" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#AssignAutomaticRule"/>
+       <!-- Sold -->    
+       <view-map name="SoldListing" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#SoldListing"/>
+       <view-map name="OpenUnpaid" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#OpenUnpaid"/>
+       <view-map name="MakeSecondChanceOffer" type="screen" 
page="component://ebaystore/widget/EbayStoreScreens.xml#MakeSecondChanceOffer"/>
     <!-- end of view mappings -->
 </site-conf>

Modified: ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreForms.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreForms.xml?rev=910474&r1=910473&r2=910474&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreForms.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreForms.xml Tue Feb 16 
11:09:12 2010
@@ -154,4 +154,80 @@
         <field name="productStore" entry-name="parameters.productStoreId" 
><display-entity entity-name="ProductStore" description="${storeName} 
[${productStoreId}]" key-field-name="productStoreId" ></display-entity></field>
         <field name="submitButton" 
title="${uiLabelMap.BlockItemsOutOfStock}"><submit 
button-type="button"/></field>
     </form>
+    <!-- Sold Items List -->
+       <form name="SoldItemList" type="list"  target="doAction" 
list-name="soldItemList"
+       odd-row-style="alternate-row" header-row-style="header-row-2" 
default-table-style="basic-table hover-bar" use-row-submit="true" 
separate-columns="true">
+       <row-actions>
+               <script 
location="component://ebaystore/webapp/ebaystore/WEB-INF/actions/store/SoldAction.groovy"/>
+       </row-actions>
+       <field name="productStoreId"><hidden 
value="${parameters.productStoreId}"/></field>
+       <field name="itemId"><display description="${itemId} - 
${title}"/></field>
+       <field name="listingType"><display 
description="${listingType}"/></field>
+       <field name="quantity"><display description="${quantity}"/></field>
+       <field name="transactionId"><display 
description="${transactionId}"/></field>
+       <field name="salePrice"><display description="${salePrice}"/></field>
+       <field name="totalAmount"><display 
description="${totalAmount}"/></field>
+       <field name="creationTime"><display description="${creationTime}" 
type="date"/></field>
+       <field name="paidTime"><display description="${paidTime}" 
type="date"/></field>
+       <field name="checkoutStatus"><display 
description="${checkoutStatus}"/></field>
+       <field name="unpaidItemStatus"><display 
description="${unpaidItemStatus}"/></field>
+       <field name="action" 
use-when="&quot;${hasAction}&quot;==&quot;true&quot;">
+               <drop-down>
+                       <list-options key-name="action" list-name="actionList" 
description="${actionName}"/>
+               </drop-down>
+       </field>
+       <field name="submitButton"  
use-when="&quot;${hasAction}&quot;==&quot;true&quot;" 
title="${uiLabelMap.CommonSubmit}"><submit/></field>
+    </form>
+    <form name="OpenUnpaid" type="single" target="addDispute">
+       <field name="productStoreId"><hidden 
value="${parameters.productStoreId}"/></field>
+       <field name="itemId"><hidden value="${parameters.itemId}"/></field>
+       <field name="item"><text disabled="true" 
default-value="${parameters.itemId} - ${parameters.title}"/></field>
+       <field name="listingType"><text disabled="true" 
default-value="${parameters.listingType}"/></field>
+       <field name="quantity"><text disabled="true" 
default-value="${parameters.quantity}"/></field>
+       <field name="salePrice"><text disabled="true" 
default-value="${parameters.salePrice}"/></field>
+       <field name="transactionId"><hidden 
value="${parameters.transactionId}"/></field>
+       <field name="transaction"><text disabled="true" 
default-value="${parameters.transactionId}"/></field>
+       <field name="disputeReasonCodeType">
+               <radio no-current-selected-key="TransactionMutuallyCanceled">
+                       <option key="BUYER_HAS_NOT_PAID" description="The buyer 
has not paid for the item"/>
+                       <option key="TRANSACTION_MUTUALLY_CANCELED" 
description="We have both agreed not to complete the transaction"/>
+               </radio>
+       </field>
+               <field name="disputeExplanationCodeType">
+               <drop-down>
+                       <option key="" description="- - Select One - -"/>
+                       <option key="BUYER_PURCHASING_MISTAKE" 
description="Buyer purchased item by mistake or changed mind"/>
+                       <option key="BUYER_RETURNED_ITEM_FOR_REFUND" 
description="Buyer is returning item for a refund"/>
+                       <option key="UNABLE_TO_RESOLVE_TERMS" 
description="Buyer and I disagreed over terms"/>
+                       <option key="BUYER_HAS_NOT_RESPONDED" 
description="Buyer is unresponsive"/>
+                       <option key="PAYMENT_METHOD_NOT_SUPPORTED" 
description="Buyer's payment hasn't been received or hasn't cleared"/>
+                       <option key="SHIPPING_ADDRESS_NOT_CONFIRMED" 
description="Buyer requested shipment to an unconfirmed address"/>
+                       <option key="SHIP_COUNTRY_NOT_SUPPORTED" 
description="Seller doesn't ship to the country requested by buyer"/>
+                               <option key="OTHER_EXPLANATION" 
description="Other reason"/>
+               </drop-down>
+       </field>
+       <field name="submitButton" title="${uiLabelMap.CommonSubmit}" 
position="1"><submit/></field>
+       <field name="cancelButton" title="${uiLabelMap.CommonEmptyHeader}" 
widget-style="smallSubmit" position="2">
+               <hyperlink target="soldListing" 
description="${uiLabelMap.CommonCancel}">
+                       <parameter param-name="productStoreId" 
from-field="parameters.productStoreId"/>
+               </hyperlink>
+       </field>
+       </form>
+    <form name="MakeSecondChanceOffer" type="single" 
target="addEbaySecondChanceOffer">
+       <auto-fields-service service-name="addEbaySecondChanceOffer"/>
+       <field name="duration">
+               <drop-down>
+                       <option key="DAYS_1" description="a day"/>
+                       <option key="DAYS_3" description="3 days"/>
+                       <option key="DAYS_5" description="5 days"/>
+                       <option key="DAYS_7" description="7 days"/>
+               </drop-down>
+       </field>
+       <field name="recipientBidderUserId">
+               <drop-down>
+                       <list-options key-name="userId" list-name="bidders" 
description="${userId}"/>
+               </drop-down>
+       </field>
+       <field name="submitButton" 
title="${uiLabelMap.CommonAdd}"><submit/></field>
+    </form>   
 </forms>
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreMenus.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreMenus.xml?rev=910474&r1=910473&r2=910474&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreMenus.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreMenus.xml Tue Feb 16 
11:09:12 2010
@@ -53,6 +53,11 @@
                 <parameter param-name="productStoreId" 
value="${parameters.productStoreId}"/>
             </link>
         </menu-item>
+        <menu-item name="soldListing" 
title="${uiLabelMap.EbayStoreOpenUnpaidItemDispute}">
+            <link target="soldListing">
+                <parameter param-name="productStoreId" 
value="${parameters.productStoreId}"/>
+            </link>
+        </menu-item>
         <menu-item name="feedback" title="${uiLabelMap.EbayFeedback}">
             <link target="Feedback">
                 <parameter param-name="productStoreId" 
value="${parameters.productStoreId}"/>

Modified: ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreScreens.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreScreens.xml?rev=910474&r1=910473&r2=910474&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/ebaystore/widget/EbayStoreScreens.xml Tue Feb 16 
11:09:12 2010
@@ -595,4 +595,52 @@
             </widgets>
         </section>
     </screen>
+       <screen name="EbaySoldListing">
+        <section>
+            <actions>
+                <set field="tabButtonItem" value="soldListing"/>               
 
+            </actions>
+            <widgets>
+               <decorator-screen name="permission-decorator" 
location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                       <decorator-section-include name="body"/>
+                       </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+    <screen name="SoldListing">
+       <section>
+               <actions>
+                       <service service-name="getEbaySoldItems" 
result-map="result">
+                       <field-map field-name="productStoreId" 
from-field="parameters.productStoreId"/>
+                       <field-map field-name="status" 
from-field="parameters.status"/>
+                       <field-map field-name="period" 
from-field="parameters.period"/>
+                </service>
+                <set field="soldItemList" from-field="result.soldItems"/>
+               </actions>
+               <widgets>
+                       <decorator-screen name="EbaySoldListing">
+                               <decorator-section name="body">
+                               <screenlet title="Sold Listing">
+                                       <include-form 
location="component://ebaystore/widget/EbayStoreForms.xml" name="SoldItemList"/>
+                               </screenlet>
+                               </decorator-section>
+                       </decorator-screen>
+               </widgets>
+       </section>
+    </screen>
+    <screen name="OpenUnpaid">
+       <section>
+               <widgets>
+                       <decorator-screen name="EbaySoldListing">
+                               <decorator-section name="body">
+                                       <screenlet title="Open Unpaid">
+                                       <include-form 
location="component://ebaystore/widget/EbayStoreForms.xml" name="OpenUnpaid"/>
+                               </screenlet>
+                       </decorator-section>
+                       </decorator-screen>
+               </widgets>
+       </section>
+    </screen>
 </screens>
\ No newline at end of file


Reply via email to