/// <summary>
        /// Gets the issues by receiving unit faster.
        /// </summary>
        /// <param name="storeID">The store ID.</param>
        /// <param name="routeID">The route ID.</param>
        /// <param name="type">The type.</param>
        /// <returns></returns>
        /// Shit: what a name? and it does crazy stuff too.
        public DataTable GetIssuesByReceivingUnitFaster(int storeID, int routeID, int type)
        {
            var ru = new Institution();

            if (Settings.IsRdfMode)
                ru.GetFacilitiesThatEverReceivedItems();
            else
                ru.GetAllUnderRoute(routeID);

            //Load all the items.
            var query = HCMIS.Repository.Queries.Item.SelectGetIssuesByReceivingUnitFaster(type);
            this.LoadFromRawSql(query);

            //Add the columns
            while (!ru.EOF)
            {
                this.AddColumn(string.Format("{0},{1}", ru.Name, ru.ID), typeof(int));
                ru.MoveNext();
            }

            while (!this.EOF)
            {
                Institution rus = new Institution();
                if (Settings.IsRdfMode)
                    rus.GetFacilitiesThatEverReceivedItems();
                else
                    rus.GetAllUnderRoute(routeID);

                while (!rus.EOF)
                {
                    int itemID = int.Parse(this.GetColumn("ID").ToString());

                    var itm = new Item();
                    var issueQuery = HCMIS.Repository.Queries.Item.SelectGetIssuesByReceivingUnitFasterIssueQuery(itemID, rus.ID);
                    itm.LoadFromRawSql(issueQuery);

                    if (itm.RowCount > 0 && !itm.IsColumnNull("Quantity"))
                        this.SetColumn(string.Format("{0},{1}", ru.Name, ru.ID), itm.GetColumn("Quantity"));
                    rus.MoveNext();

                }
                this.MoveNext();

            }
            return this.DataTable;
        }
        private void lkRoute_EditValueChanged(object sender, EventArgs e)
        {
            Institution rec = new Institution();

            if (lkRoute.EditValue.ToString() == "0")
            {
                lkIssuedTo.Properties.DataSource = rec.GetFacilitiesThatEverReceivedItems(); ;
            }
            else
            {
                lkIssuedTo.Properties.DataSource = rec.GetAllUnderRoute(Convert.ToInt32(lkRoute.EditValue));
            }
        }
        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;
        }