public DataTable GetIssuesByReceivingUnit(int storeId, int routeId, int type, DateTime sdate, DateTime edate,int storeid) { //This function does not look efficient. var rus = new Institution(); rus.LoadAll(); rus.GetAllUnderRoute(routeId); string theFrom = ""; int i = 0; while (!rus.EOF) { theFrom += HCMIS.Repository.Queries.Item.GetFromClauseFor_GetIssueByReceivingUnitsFilterByDateRange(rus.ID, i,sdate,edate, storeid); i++; rus.MoveNext(); } string select = ""; rus.Rewind(); for (int j = 0; j < i; j++) { select = HCMIS.Repository.Queries.Item.GetSelectClauseFor_GetIssueByReceivingUnits(select, rus.Name, j); rus.MoveNext(); } var query = HCMIS.Repository.Queries.Item.SelectGetIssuesByReceivingUnit(type, select, theFrom); Item ite =new Item(); ite.LoadFromRawSql(query); return ite.DataTable; }