Exemple #1
0
        public IEnumerable <TreeViewModel> GetTreeElts(int adminunitParentId, int hubId)
        {
            var UnclosedDispatchAllocations = _unitOfWork.DispatchAllocationRepository.FindBy(t =>
                                                                                              t.ShippingInstructionID.HasValue &&
                                                                                              t.ProjectCodeID.HasValue &&
                                                                                              hubId == t.HubID &&
                                                                                              t.IsClosed == false);



            BLL.AdminUnit adminUnit        = _unitOfWork.AdminUnitRepository.FindById(adminunitParentId);
            var           parentAdminUnits = _unitOfWork.AdminUnitRepository.FindBy(t => t.ParentID == adminunitParentId);

            if (adminUnit.AdminUnitType.AdminUnitTypeID == 1)//by region
            {
                return((from Unc in UnclosedDispatchAllocations
                        where Unc.FDP.AdminUnit.AdminUnit2.AdminUnit2.ParentID == adminunitParentId
                        group Unc by new { Unc.FDP.AdminUnit.AdminUnit2.AdminUnit2 } into b
                        select new TreeViewModel
                {
                    Name = b.Key.AdminUnit2.Name,
                    Value = b.Key.AdminUnit2.AdminUnitID,
                    Enabled = true,
                    Count = b.Count()
                }).Union(from ad in parentAdminUnits
                         select new TreeViewModel
                {
                    Name = ad.Name,
                    Value = ad.AdminUnitID,
                    Enabled = true,
                    Count = 0
                }
                         ));
            }
            else if (adminUnit.AdminUnitType.AdminUnitTypeID == 2)//by zone
            {
                return
                    ((from Unc in UnclosedDispatchAllocations
                      where Unc.FDP.AdminUnit.AdminUnit2.ParentID == adminunitParentId
                      group Unc by new { Unc.FDP.AdminUnit.AdminUnit2 } into b
                      select new TreeViewModel
                {
                    Name = b.Key.AdminUnit2.Name,
                    Value = b.Key.AdminUnit2.AdminUnitID,
                    Enabled = true,
                    Count = b.Count()
                }).Union(from ad in parentAdminUnits
                         select new TreeViewModel
                {
                    Name = ad.Name,
                    Value = ad.AdminUnitID,
                    Enabled = true,
                    Count = 0
                }
                         ));
            }
            else //if (adminUnit.AdminUnitType.AdminUnitTypeID == 4)//by woreda
            {
                return
                    ((from Unc in UnclosedDispatchAllocations
                      where Unc.FDP.AdminUnit.ParentID == adminunitParentId
                      group Unc by new { Unc.FDP.AdminUnit } into b
                      select new TreeViewModel
                {
                    Name = b.Key.AdminUnit.Name,
                    Value = b.Key.AdminUnit.AdminUnitID,
                    Enabled = true,
                    Count = b.Count()
                }).Union(from ad in parentAdminUnits
                         select new TreeViewModel
                {
                    Name = ad.Name,
                    Value = ad.AdminUnitID,
                    Enabled = true,
                    Count = 0
                }
                         ));
            }
        }
        public List <DispatchAllocationViewModelDto> GetCommitedAllocationsByHubDetached(int hubId, string PreferedWeightMeasurment, bool?closedToo, int?AdminUnitId, int?CommodityType)
        {
            List <DispatchAllocationViewModelDto> GetUncloDetacheced = new List <DispatchAllocationViewModelDto>();

            var unclosed = (from dAll in db.DispatchAllocations
                            where dAll.ShippingInstructionID.HasValue && dAll.ProjectCodeID.HasValue &&
                            hubId == dAll.HubID

                            select dAll);

            if (AdminUnitId.HasValue)
            {
                BLL.AdminUnit adminunit = repository.AdminUnit.FindById(AdminUnitId.Value);

                if (adminunit.AdminUnitType.AdminUnitTypeID == 2)//by region
                {
                    unclosed =
                        unclosed.Where(p => p.FDP.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID == AdminUnitId.Value);
                }
                else if (adminunit.AdminUnitType.AdminUnitTypeID == 3)//by zone
                {
                    unclosed =
                        unclosed.Where(p => p.FDP.AdminUnit.AdminUnit2.AdminUnitID == AdminUnitId.Value);
                }
                else if (adminunit.AdminUnitType.AdminUnitTypeID == 4)//by woreda
                {
                    unclosed =
                        unclosed.Where(p => p.FDP.AdminUnit.AdminUnitID == AdminUnitId.Value);
                }
                //DAVMD.Region = adminunit.FDP.AdminUnit.AdminUnit2.AdminUnit2.;
                //DAVMD.Zone = adminunit.FDP.AdminUnit.AdminUnit2.Name;
                //DAVMD.Woreda = adminunit.FDP.AdminUnit.Name;

                //unclosed = unclosed.Where(p => p.FDP.AdminUnitID == AdminUnitId.Value);
            }
            if (closedToo == null || closedToo == false)
            {
                unclosed = unclosed.Where(p => p.IsClosed == false);
            }
            else
            {
                unclosed = unclosed.Where(p => p.IsClosed == true);
            }

            if (CommodityType.HasValue)
            {
                unclosed = unclosed.Where(p => p.Commodity.CommodityTypeID == CommodityType.Value);
            }
            else
            {
                unclosed = unclosed.Where(p => p.Commodity.CommodityTypeID == 1);//by default
            }

            foreach (var dispatchAllocation in unclosed)
            {
                var DAVMD = new DispatchAllocationViewModelDto();
                if (PreferedWeightMeasurment.ToUpperInvariant() == "MT" && dispatchAllocation.Commodity.CommodityTypeID == 1) //only for food
                {
                    DAVMD.Amount                      = dispatchAllocation.Amount / 10;
                    DAVMD.DispatchedAmount            = dispatchAllocation.DispatchedAmount / 10;
                    DAVMD.RemainingQuantityInQuintals = dispatchAllocation.RemainingQuantityInQuintals / 10;
                }
                else
                {
                    DAVMD.Amount                      = dispatchAllocation.Amount;
                    DAVMD.DispatchedAmount            = dispatchAllocation.DispatchedAmount;
                    DAVMD.RemainingQuantityInQuintals = dispatchAllocation.RemainingQuantityInQuintals;
                }
                DAVMD.DispatchAllocationID = dispatchAllocation.DispatchAllocationID;
                DAVMD.CommodityName        = dispatchAllocation.Commodity.Name;
                DAVMD.RequisitionNo        = dispatchAllocation.RequisitionNo;
                DAVMD.BidRefNo             = dispatchAllocation.BidRefNo;

                DAVMD.Region   = dispatchAllocation.FDP.AdminUnit.AdminUnit2.AdminUnit2.Name;
                DAVMD.Zone     = dispatchAllocation.FDP.AdminUnit.AdminUnit2.Name;
                DAVMD.Woreda   = dispatchAllocation.FDP.AdminUnit.Name;
                DAVMD.FDPName  = dispatchAllocation.FDP.Name;
                DAVMD.IsClosed = dispatchAllocation.IsClosed;


                DAVMD.AmountInUnit            = DAVMD.Amount;
                DAVMD.DispatchedAmountInUnit  = dispatchAllocation.DispatchedAmountInUnit;
                DAVMD.RemainingQuantityInUnit = dispatchAllocation.RemainingQuantityInUnit;

                GetUncloDetacheced.Add(DAVMD);
                // db.Detach(dispatchAllocation);
            }
            return(GetUncloDetacheced);
        }