svn commit: r497947 - in /ofbiz/trunk/applications/order: config/ webapp/ordermgr/WEB-INF/actions/order/ webapp/ordermgr/order/

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

svn commit: r497947 - in /ofbiz/trunk/applications/order: config/ webapp/ordermgr/WEB-INF/actions/order/ webapp/ordermgr/order/

jleroux@apache.org
Author: jleroux
Date: Fri Jan 19 12:36:22 2007
New Revision: 497947

URL: http://svn.apache.org/viewvc?view=rev&rev=497947
Log:
This solves the pagination problem with filters on orders list and find order(s)

I added a new (last) column "Filters" where are shown trigrams (3 letters) indicators for each filters.
For instance So might be "Inv, Aut" and PO "Eta, Par, Rej" (in english, will be internationalised)

This is commited in a CTR mode. Please let me know if you see any problems, thanks.


Modified:
    ofbiz/trunk/applications/order/config/OrderUiLabels.properties
    ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/filterorderlist.bsh
    ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/findOrders.bsh
    ofbiz/trunk/applications/order/webapp/ordermgr/order/findOrders.ftl
    ofbiz/trunk/applications/order/webapp/ordermgr/order/orderlist.ftl

Modified: ofbiz/trunk/applications/order/config/OrderUiLabels.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderUiLabels.properties?view=diff&rev=497947&r1=497946&r2=497947
==============================================================================
--- ofbiz/trunk/applications/order/config/OrderUiLabels.properties (original)
+++ ofbiz/trunk/applications/order/config/OrderUiLabels.properties Fri Jan 19 12:36:22 2007
@@ -195,6 +195,7 @@
 OrderErrorFacilityHaveNoAdress=Error : the facility does not have addresses
 OrderExemptAmount=Exempt Amount
 OrderExternalId=External ID
+OrderFilterAuthProblems=Authorisation Problems
 OrderFilterInventoryProblems=Inventory problems
 OrderFilterOn=Filter on
 OrderFilterPOs=purchase orders
@@ -234,8 +235,8 @@
 OrderItemsReturned=Items Returned
 OrderItemsSubTotal=Items SubTotal
 OrderJurisdiction=Jurisdiction
-OrderLinkedToOrderItem=Linked to order item
 OrderLinkedFromOrderItem=Linked from order item
+OrderLinkedToOrderItem=Linked to order item
 OrderLinkedToQuote=Linked to quote
 OrderLinkedToRequirement=Linked to requirement
 OrderLookupOrder=Lookup Order(s)

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/filterorderlist.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/filterorderlist.bsh?view=diff&rev=497947&r1=497946&r2=497947
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/filterorderlist.bsh (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/filterorderlist.bsh Fri Jan 19 12:36:22 2007
@@ -21,10 +21,10 @@
 import org.ofbiz.order.order.OrderReadHelper;
 import org.ofbiz.product.store.ProductStoreWorker;
 
-orderHeaderList = context.remove("orderHeaderList");
+orderHeaderList = context.get("orderHeaderList");
 productStore = ProductStoreWorker.getProductStore(request);
-List filteredList = new ArrayList();
 
+List filterInventoryProblems = new ArrayList();
 
 if ("Y".equals(requestParameters.get("filterInventoryProblems")) && UtilValidate.isNotEmpty(orderHeaderList)) {
     for (ohi = orderHeaderList.iterator(); ohi.hasNext();) {
@@ -32,42 +32,48 @@
         orderReadHelper = OrderReadHelper.getHelper(orderHeader);
         backorderQty = orderReadHelper.getOrderBackorderQuantityBd();
         if (backorderQty.compareTo(new BigDecimal("0")) == 1) {
-            filteredList.add(orderHeader);
+            filterInventoryProblems.add(orderHeader.get("orderId"));
         }
     }
 }
 
+List filterPOsOpenPastTheirETA = new ArrayList();
+List filterPOsWithRejectedItems = new ArrayList();
+List filterPartiallyReceivedPOs = new ArrayList();
+
 if (("Y".equals(requestParameters.get("filterPartiallyReceivedPOs")) ||
-     "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA")) ||
-     "Y".equals(requestParameters.get("filterPOsWithRejectedItems"))) &&
-     UtilValidate.isNotEmpty(orderHeaderList)) {    
+        "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA")) ||
+        "Y".equals(requestParameters.get("filterPOsWithRejectedItems"))) &&
+        UtilValidate.isNotEmpty(orderHeaderList)) {    
     for (ohi = orderHeaderList.iterator(); ohi.hasNext();) {
         orderHeader = (GenericValue) ohi.next();
         facilityId = orderHeader.getString("originFacilityId");
         if (facilityId == null) {
- facilityId = productStore.getString("inventoryFacilityId");
+        facilityId = productStore.getString("inventoryFacilityId");
         }
         orderReadHelper = OrderReadHelper.getHelper(orderHeader);
         if ("PURCHASE_ORDER".equals(orderHeader.getString("orderTypeId"))) {                
             if (orderReadHelper.getRejectedOrderItems() &&
                     "Y".equals(requestParameters.get("filterPOsWithRejectedItems"))) {
-                filteredList.add(orderHeader);
+                filterPOsWithRejectedItems.add(orderHeader.get("orderId"));
                 continue;
             }
             if (orderReadHelper.getPastEtaOrderItems(orderHeader.get("orderId")) &&
                     "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA"))) {
-                filteredList.add(orderHeader);
+                filterPOsOpenPastTheirETA.add(orderHeader.get("orderId"));
                 continue;
             }
             if (orderReadHelper.getPartiallyReceivedItems() &&
                     "Y".equals(requestParameters.get("filterPartiallyReceivedPOs"))) {
-                filteredList.add(orderHeader);
+                filterPartiallyReceivedPOs.add(orderHeader.get("orderId"));
                 continue;
             }            
         }
     }
 }
 
+List filterAuthProblems = new ArrayList();
+
 if ("Y".equals(requestParameters.get("filterAuthProblems")) && UtilValidate.isNotEmpty(orderHeaderList)) {
     for (ohi = orderHeaderList.iterator(); ohi.hasNext();) {
         orderHeader = (GenericValue) ohi.next();
@@ -76,18 +82,13 @@
         for (Iterator ppi = paymentPrefList.iterator(); ppi.hasNext();) {
             paymentPref = (GenericValue) ppi.next();
             if ("PAYMENT_NOT_AUTH".equals(paymentPref.getString("statusId"))) {
-                filteredList.add(orderHeader);
+                filterAuthProblems.add(orderHeader.get("orderId"));
             }
-        }
+        }        
     }
 }
-
-if (("Y".equals(requestParameters.get("filterPartiallyReceivedPOs")) ||
-     "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA")) ||
-     "Y".equals(requestParameters.get("filterPOsWithRejectedItems")) ||
-     "Y".equals(requestParameters.get("filterAuthProblems")) ||
-     "Y".equals(requestParameters.get("filterInventoryProblems")))) {    
-    orderHeaderList = filteredList;
-}
-
-context.put("orderHeaderList", orderHeaderList);
+context.put("filterInventoryProblems", filterInventoryProblems);
+context.put("filterPOsWithRejectedItems", filterPOsWithRejectedItems);
+context.put("filterPOsOpenPastTheirETA", filterPOsOpenPastTheirETA);
+context.put("filterPartiallyReceivedPOs", filterPartiallyReceivedPOs);
+context.put("filterAuthProblems", filterAuthProblems);
\ No newline at end of file

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/findOrders.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/findOrders.bsh?view=diff&rev=497947&r1=497946&r2=497947
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/findOrders.bsh (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/order/findOrders.bsh Fri Jan 19 12:36:22 2007
@@ -383,59 +383,74 @@
     }
     
     productStore = ProductStoreWorker.getProductStore(request);
-    List filteredList = new ArrayList();
-
+    List filterInventoryProblems = new ArrayList();
+    
     if ("Y".equals(requestParameters.get("filterInventoryProblems")) && UtilValidate.isNotEmpty(orderHeaderList)) {
-    for (ohi = orderHeaderList.iterator(); ohi.hasNext();) {
-        orderHeader = (GenericValue) ohi.next();
-        orderReadHelper = OrderReadHelper.getHelper(orderHeader);
-        backorderQty = orderReadHelper.getOrderBackorderQuantityBd();
-        if (backorderQty.compareTo(new BigDecimal("0")) == 1) {
-            filteredList.add(orderHeader);
-        }
-    }
- }
+        paramList = paramList + "&filterInventoryProblems=" + "Y";
+        for (ohi = orderHeaderList.iterator(); ohi.hasNext();) {
+            orderHeader = (GenericValue) ohi.next();
+            orderReadHelper = OrderReadHelper.getHelper(orderHeader);
+            backorderQty = orderReadHelper.getOrderBackorderQuantityBd();
+            if (backorderQty.compareTo(new BigDecimal("0")) == 1) {
+                filterInventoryProblems.add(orderHeader.get("orderId"));
+            }
+        }
+    }
 
+    List filterPOsOpenPastTheirETA = new ArrayList();
+    List filterPOsWithRejectedItems = new ArrayList();
+    List filterPartiallyReceivedPOs = new ArrayList();
+    
+    if ("Y".equals(requestParameters.get("filterPOsWithRejectedItems"))) {
+                        paramList = paramList + "&filterPOsWithRejectedItems=" + "Y";
+    }    
+    if ("Y".equals(requestParameters.get("filterPOsOpenPastTheirETA"))) {
+                        paramList = paramList + "&filterPOsOpenPastTheirETA=" + "Y";
+    }    
+    if ("Y".equals(requestParameters.get("filterPartiallyReceivedPOs"))) {
+                        paramList = paramList + "&filterPartiallyReceivedPOs=" + "Y";
+    }
+        
     if (("Y".equals(requestParameters.get("filterPartiallyReceivedPOs")) ||
-         "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA")) ||
-         "Y".equals(requestParameters.get("filterPOsWithRejectedItems"))) &&
-         UtilValidate.isNotEmpty(orderHeaderList)) {    
+            "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA")) ||
+            "Y".equals(requestParameters.get("filterPOsWithRejectedItems"))) &&
+            UtilValidate.isNotEmpty(orderHeaderList)) {
         for (ohi = orderHeaderList.iterator(); ohi.hasNext();) {
             orderHeader = (GenericValue) ohi.next();
             facilityId = orderHeader.getString("originFacilityId");
             if (facilityId == null) {
-     facilityId = productStore.getString("inventoryFacilityId");
+            facilityId = productStore.getString("inventoryFacilityId");
             }
             orderReadHelper = OrderReadHelper.getHelper(orderHeader);
             if ("PURCHASE_ORDER".equals(orderHeader.getString("orderTypeId"))) {                
                 if (orderReadHelper.getRejectedOrderItems() &&
-                        "Y".equals(requestParameters.get("filterPOsWithRejectedItems"))) {
-                filteredList.add(orderHeader);
-                continue;
-            }
+                        "Y".equals(requestParameters.get("filterPOsWithRejectedItems"))) {                    
+                    filterPOsWithRejectedItems.add(orderHeader.get("orderId"));
+                    paramList = paramList + "&filterPOsWithRejectedItems=" + "Y";
+                    continue;
+                }
                 if (orderReadHelper.getPastEtaOrderItems(orderHeader.get("orderId")) &&
-                        "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA"))) {                    
-                    filteredList.add(orderHeader);
+                        "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA"))) {
+                    filterPOsOpenPastTheirETA.add(orderHeader.get("orderId"));
                     continue;
                 }
                 if (orderReadHelper.getPartiallyReceivedItems() &&
                         "Y".equals(requestParameters.get("filterPartiallyReceivedPOs"))) {
-                    filteredList.add(orderHeader);
+                    filterPartiallyReceivedPOs.add(orderHeader.get("orderId"));
+                    paramList = paramList + "&filterPartiallyReceivedPOs=" + "Y";
                     continue;
-                }
                 }            
             }
         }
-    
-    if (("Y".equals(requestParameters.get("filterPartiallyReceivedPOs")) ||
-     "Y".equals(requestParameters.get("filterPOsOpenPastTheirETA")) ||
-     "Y".equals(requestParameters.get("filterPOsWithRejectedItems")) ||
-     "Y".equals(requestParameters.get("filterInventoryProblems")))) {    
-        orderHeaderList = filteredList;
     }
-    
+
+    context.put("filterInventoryProblems", filterInventoryProblems);
+    context.put("filterPOsWithRejectedItems", filterPOsWithRejectedItems);
+    context.put("filterPOsOpenPastTheirETA", filterPOsOpenPastTheirETA);
+    context.put("filterPartiallyReceivedPOs", filterPartiallyReceivedPOs);  
+
     context.put("orderHeaderList", orderHeaderList);
-    context.put("orderHeaderListSize", orderHeaderListSize); // TODO : orderHeaderListSize here is not reactualized. Date from "if user doesn't have it, only SALES_ORDER" comment above...
+    context.put("orderHeaderListSize", orderHeaderListSize); // TODO : orderHeaderListSize here is not reactualized. Date from "if user doesn't have it, only SALES_ORDER" comment above...    
 
     if (lookupErrorMessage != null) {
         context.put("lookupErrorMessage", lookupErrorMessage);
@@ -445,4 +460,3 @@
 context.put("paramList", paramList);
 context.put("highIndex", highIndex);
 context.put("lowIndex", lowIndex);
-

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/order/findOrders.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/findOrders.ftl?view=diff&rev=497947&r1=497946&r2=497947
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/order/findOrders.ftl (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/order/findOrders.ftl Fri Jan 19 12:36:22 2007
@@ -218,7 +218,7 @@
                 </td>
               </tr>
               <tr>
-                <td width='25%' align='right'><div class='tableheadtext'>${uiLabelMap.CommonStatus}</div></td>
+                <td width='25%' align='right'><div class='tableheadtext'>${uiLabelMap.CommonStatus}</div></td>                
                 <td width='5%'>&nbsp;</td>
                 <td>
                   <select name='orderStatusId' class='selectBox'>
@@ -280,8 +280,8 @@
                   <table border='0' cellspacing='0' cellpadding='0'>
                     <tr>
                       <td nowrap>
-                     <input type="checkbox" name="filterInventoryProblems" value="Y"
-                         <#if requestParameters.filterInventoryProblems?default("N") == "Y">checked="checked"</#if> />                    
+                        <input type="checkbox" name="filterInventoryProblems" value="Y"
+                            <#if requestParameters.filterInventoryProblems?default("N") == "Y">checked="checked"</#if> />                    
                       </td>
                     </tr>
                   </table>
@@ -295,8 +295,8 @@
                   <table border='0' cellspacing='0' cellpadding='0'>
                     <tr>
                       <td nowrap>
-                     <input type="checkbox" name="filterPartiallyReceivedPOs" value="Y"
-                         <#if requestParameters.filterPartiallyReceivedPOs?default("N") == "Y">checked="checked"</#if> />                    
+                        <input type="checkbox" name="filterPartiallyReceivedPOs" value="Y"
+                            <#if requestParameters.filterPartiallyReceivedPOs?default("N") == "Y">checked="checked"</#if> />                    
                       </td>
                     </tr>
                   </table>
@@ -311,8 +311,8 @@
                   <table border='0' cellspacing='0' cellpadding='0'>
                     <tr>
                       <td nowrap>
-                     <input type="checkbox" name="filterPOsOpenPastTheirETA" value="Y"
-                         <#if requestParameters.filterPOsOpenPastTheirETA?default("N") == "Y">checked="checked"</#if> />                    
+                        <input type="checkbox" name="filterPOsOpenPastTheirETA" value="Y"
+                            <#if requestParameters.filterPOsOpenPastTheirETA?default("N") == "Y">checked="checked"</#if> />                    
                       </td>
                     </tr>
                   </table>
@@ -327,8 +327,8 @@
                   <table border='0' cellspacing='0' cellpadding='0'>
                     <tr>
                       <td nowrap>
-                     <input type="checkbox" name="filterPOsWithRejectedItems" value="Y"
-                         <#if requestParameters.filterPOsWithRejectedItems?default("N") == "Y">checked="checked"</#if> />                    
+                        <input type="checkbox" name="filterPOsWithRejectedItems" value="Y"
+                            <#if requestParameters.filterPOsWithRejectedItems?default("N") == "Y">checked="checked"</#if> />                    
                       </td>
                     </tr>
                   </table>
@@ -420,7 +420,12 @@
           <td width="10%" align="right"><div class="tableheadtext">${uiLabelMap.OrderRemainingSubTotal}</div></td>
           <td width="10%" align="right"><div class="tableheadtext">${uiLabelMap.OrderOrderTotal}</div></td>
           <td width="5%" align="left"><div class="tableheadtext">&nbsp;</div></td>
-          <td width="20%" align="left"><div class="tableheadtext">${uiLabelMap.CommonStatus}</div></td>
+            <#if filterInventoryProblems?has_content || filterPOsOpenPastTheirETA?has_content || filterPOsWithRejectedItems?has_content || filterPartiallyReceivedPOs?has_content>
+              <td width="15%" align="left"><div class="tableheadtext">${uiLabelMap.CommonStatus}</div></td>
+              <td width="5%"><div class="tabletext"><b>${uiLabelMap.CommonFilter}</b></div></td>
+            <#else>
+              <td width="20%" align="left"><div class="tableheadtext">${uiLabelMap.CommonStatus}</div></td>
+            </#if>          
           <td width="20%" align="left"><div class="tableheadtext">${uiLabelMap.OrderDate}</div></td>
           <td width="5%" align="left"><div class="tableheadtext">${uiLabelMap.PartyPartyId}</div></td>
           <td width="10%">&nbsp;</td>
@@ -488,6 +493,22 @@
 
               <td>&nbsp;</td>
               <td><div class="tabletext">${statusItem.get("description",locale)?default(statusItem.statusId?default("N/A"))}</div></td>
+                                </td>
+                  <td class="tabletext">
+                      <#if filterInventoryProblems.contains(orderHeader.orderId)>
+                        Inv&nbsp;                      
+                      </#if>
+                      <#if filterPOsOpenPastTheirETA.contains(orderHeader.orderId)>
+                        ETA&nbsp;                      
+                      </#if>
+                      <#if filterPOsWithRejectedItems.contains(orderHeader.orderId)>
+                        Rej&nbsp;                      
+                      </#if>
+                      <#if filterPartiallyReceivedPOs.contains(orderHeader.orderId)>
+                        Part&nbsp;                      
+                      </#if>                      
+                  </td>
+              
               <td><div class="tabletext">${orderHeader.getString("orderDate")}</div></td>
               <td>
                 <#if partyId != "_NA_">

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/order/orderlist.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/orderlist.ftl?view=diff&rev=497947&r1=497946&r2=497947
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/order/orderlist.ftl (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/order/orderlist.ftl Fri Jan 19 12:36:22 2007
@@ -16,21 +16,21 @@
 -->
 
 <script type="text/javascript">
- var checkBoxNameStart = "view";
- var formName = "findorder";
+    var checkBoxNameStart = "view";
+    var formName = "findorder";
 
 
- function setCheckboxes() {
- // This would be clearer with camelCase variable names
- var allCheckbox = document.forms[formName].elements[checkBoxNameStart + "all"];
- for(i = 0;i < document.forms[formName].elements.length;i++) {
- var elem = document.forms[formName].elements[i];
- if (elem.name.indexOf(checkBoxNameStart) == 0 && elem.name.indexOf("_") < 0 && elem.type == "checkbox") {
- elem.checked = allCheckbox.checked;
- }
- }
- }
-
+    function setCheckboxes() {
+        // This would be clearer with camelCase variable names
+        var allCheckbox = document.forms[formName].elements[checkBoxNameStart + "all"];
+        for(i = 0;i < document.forms[formName].elements.length;i++) {
+            var elem = document.forms[formName].elements[i];
+            if (elem.name.indexOf(checkBoxNameStart) == 0 && elem.name.indexOf("_") < 0 && elem.type == "checkbox") {
+                elem.checked = allCheckbox.checked;
+            }
+        }
+    }
+    
 </script>
 
 <table border="0" width="100%" cellspacing="0" cellpadding="0" class="boxoutside">
@@ -144,9 +144,18 @@
                 <td width="10%">
                   <div class="tabletext"><b>${uiLabelMap.OrderTrackingCode}</b></div>
                 </td>
-                <td width="15%">
-                  <div class="tabletext"><b>${uiLabelMap.CommonStatus}</b></div>
-                </td>
+                <#if filterInventoryProblems?has_content || filterAuthProblems?has_content || filterPOsOpenPastTheirETA?has_content || filterPOsWithRejectedItems?has_content || filterPartiallyReceivedPOs?has_content>
+                    <td width="10%">
+                      <div class="tabletext"><b>${uiLabelMap.CommonStatus}</b></div>
+                    </td>
+                    <td width="5%">
+                      <div class="tabletext"><b>${uiLabelMap.CommonFilter}</b></div>
+                    </td>
+                <#else>
+                    <td width="15%">
+                      <div class="tabletext"><b>${uiLabelMap.CommonStatus}</b></div>
+                    </td>
+                </#if>
               </tr>
               <#list orderHeaderList as orderHeader>
                 <#assign status = orderHeader.getRelatedOneCache("StatusItem")>                              
@@ -161,7 +170,7 @@
                 <#if billFromParty?has_content>
                   <#assign billFrom = Static["org.ofbiz.party.party.PartyHelper"].getPartyName(billFromParty, true)?if_exists>
                 </#if>
-                <tr><td colspan="8"><hr class="sepbar"/></td></tr>
+                <tr><td colspan="9"><hr class="sepbar"/></td></tr>
                 <tr>
                   <td>
                     <div class="tabletext">${orderHeader.orderDate.toString()}</div>
@@ -198,6 +207,23 @@
                   </td>
                   <td class="tabletext">
                   ${orderHeader.getRelatedOneCache("StatusItem").get("description",locale)}
+                  </td>
+                  <td class="tabletext">
+                      <#if filterInventoryProblems.contains(orderHeader.orderId)>
+                        Inv&nbsp;                      
+                      </#if>
+                      <#if filterAuthProblems.contains(orderHeader.orderId)>
+                       Aut&nbsp;                      
+                      </#if>
+                      <#if filterPOsOpenPastTheirETA.contains(orderHeader.orderId)>
+                        ETA&nbsp;                      
+                      </#if>
+                      <#if filterPOsWithRejectedItems.contains(orderHeader.orderId)>
+                        Rej&nbsp;                      
+                      </#if>
+                      <#if filterPartiallyReceivedPOs.contains(orderHeader.orderId)>
+                        Part&nbsp;                      
+                      </#if>                      
                   </td>
                 </tr>
               </#list>