Index: D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productdefinition/business/PrdOfferingBO.hbm.xml
===================================================================
--- D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productdefinition/business/PrdOfferingBO.hbm.xml	(revision 12273)
+++ D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productdefinition/business/PrdOfferingBO.hbm.xml	(working copy)
@@ -345,7 +347,7 @@
 	</query>
 	<query name="product.retrieveProductOfferingMix">
 		<![CDATA[from org.mifos.application.productdefinition.business.PrdOfferingBO prdOffering
-        where prdOffering.prdMixFlag =1
+        where prdOffering.prdMixFlag =1 order by prdOffering.prdOfferingName
 		]]>
 	</query>
 </hibernate-mapping>
Index: D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productsmix/struts/action/ProductMixAction.java
===================================================================
--- D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productsmix/struts/action/ProductMixAction.java	(revision 12273)
+++ D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/application/productsmix/struts/action/ProductMixAction.java	(working copy)
@@ -52,6 +52,7 @@
 import org.mifos.application.productdefinition.business.ProductCategoryBO;
 import org.mifos.application.productdefinition.business.ProductTypeEntity;
 import org.mifos.application.productdefinition.business.SavingsOfferingBO;
+import org.mifos.application.productdefinition.business.service.ProductCategoryBusinessService;
 import org.mifos.application.productdefinition.util.helpers.ProductDefinitionConstants;
 import org.mifos.application.productdefinition.util.helpers.ProductType;
 import org.mifos.application.productsmix.business.ProductMixBO;
@@ -576,6 +577,9 @@
 			}
 		}
 		SessionUtils.setCollectionAttribute(
+				ProductDefinitionConstants.PRODUCTCATEGORYLIST,
+				getAllCategories(userContext), request);
+		SessionUtils.setCollectionAttribute(
 				ProductDefinitionConstants.PRODUCTMIXLIST,
 				getPrdMixBusinessService().getPrdOfferingMix(), request);
 
@@ -697,6 +701,20 @@
 		prdOfferingBO = null;
 		return mapping.findForward(ActionForwards.update_success.toString());
 	}
-
-
+	private List<ProductCategoryBO> getAllCategories(UserContext userContext)
+			throws Exception {
+		List<ProductCategoryBO> productCategoryList = getCategoryBusinessService()
+				.getAllCategories();
+		if (productCategoryList != null) {
+			for (ProductCategoryBO productCategoryBO : productCategoryList) {
+				productCategoryBO.getPrdCategoryStatus().setLocaleId(
+						userContext.getLocaleId());
+				productCategoryBO.getProductType().setUserContext(userContext);
+			}
+		}
+		return productCategoryList;
+	}
+	private ProductCategoryBusinessService getCategoryBusinessService() {
+		return new ProductCategoryBusinessService();
+	}
 }
Index: D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/doc-root/application/productsmix/jsp/viewProductsMix.jsp
===================================================================
--- D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/doc-root/application/productsmix/jsp/viewProductsMix.jsp	(revision 12273)
+++ D:/MyWorkSpace/Job/Enda/Mifos2009/mifos/src/org/mifos/doc-root/application/productsmix/jsp/viewProductsMix.jsp	(working copy)
@@ -82,37 +82,58 @@
 							<font class="fontnormalRedBold"><html-el:errors
 								bundle="ProductDefUIResources" /> </font>
 							</span>
-							<c:forEach var="productMix"
-								items="${session:getFromSession(sessionScope.flowManager,requestScope.currentFlowKey,'ProductMixList')}">
+							<c:forEach var="productCategory"
+								items="${session:getFromSession(sessionScope.flowManager,requestScope.currentFlowKey,'ProductCategoryList')}">
+							
 								<c:if	test="${empty id}">
 									<c:set var="id"
-										value="${productMix.prdCategory.productType.productTypeID}" />
+										value="${productCategory.productType.productTypeID}" />
 									<table width="95%" border="0" cellspacing="0" cellpadding="0">
 										<tr>
 											<td width="61%">
 											   <span class="fontnormalbold">
-												 <c:out value="${productMix.prdCategory.productType.name}" />
+												 <c:out value="${productCategory.productType.name}" />
 											   </span>
 											 </td>
 										</tr>
 									</table>
+								<c:forEach var="productMix"
+								items="${session:getFromSession(sessionScope.flowManager,requestScope.currentFlowKey,'ProductMixList')}">	
+								<c:if	test="${!empty id && id == productMix.prdCategory.productType.productTypeID}">	
+									<span class="fontnormalbold"> </span>								
+								<table width="90%" border="0" cellspacing="0" cellpadding="0">
+									<tr class="fontnormal">
+										<td width="1%"><img
+											src="pages/framework/images/bullet_circle.gif" width="9"
+											height="11"></td>
+										<td width="99%"><html-el:link
+											href="productMixAction.do?method=get&prdOfferingId=${productMix.prdOfferingId}&productType=${productMix.prdType.productTypeID}&randomNUm=${sessionScope.randomNUm}">
+											<c:out value="${productMix.prdOfferingName}" />
+										</html-el:link>
+										</td>
+									</tr>
+								</table>
 								</c:if>
+								</c:forEach>
+								<br>
+								</c:if>
 								<c:if
-									test="${!empty id && id != productMix.prdCategory.productType.productTypeID}">
+									test="${!empty id && id != productCategory.productType.productTypeID}">
 									<c:set var="id"
-										value="${productMix.prdCategory.productType.productTypeID}" />
-									<br>
+										value="${productCategory.productType.productTypeID}" />
 									<table width="95%" border="0" cellspacing="0" cellpadding="0">
 										<tr>
 											<td width="61%">
 											   <span class="fontnormalbold">
-												 <c:out value="${productMix.prdCategory.productType.name}" />
+												 <c:out value="${productCategory.productType.name}" />
 											   </span>
 											 </td>
 										</tr>
 									</table>
-								</c:if>
-								<span class="fontnormalbold"> </span>								
+								<c:forEach var="productMix"
+								items="${session:getFromSession(sessionScope.flowManager,requestScope.currentFlowKey,'ProductMixList')}">	
+								<c:if	test="${!empty id && id == productMix.prdCategory.productType.productTypeID}">	
+									<span class="fontnormalbold"> </span>								
 								<table width="90%" border="0" cellspacing="0" cellpadding="0">
 									<tr class="fontnormal">
 										<td width="1%"><img
@@ -125,6 +146,9 @@
 										</td>
 									</tr>
 								</table>
+								</c:if>
+								</c:forEach>	
+								</c:if>							
 							</c:forEach>
 							<html-el:hidden property="currentFlowKey" value="${requestScope.currentFlowKey}" />
 						</html-el:form>
