コード例 #1
0
        public FileResult Print(int bidID, int regionID)
        {
            var datePref   = _userAccountService.GetUserInfo(HttpContext.User.Identity.Name).DatePreference;
            var reportPath = Server.MapPath("~/Report/Procurment/RFQ.rdlc");

            var bid    = _bidService.FindById(bidID);
            var planID = bid.TransportBidPlanID;


            TransportBidPlan bidPlan = _transportBidPlanService.FindById(planID);

            List <TransportBidPlanDetail> regionalPlan = _transportBidPlanDetailService.FindBy(t => t.BidPlanID == planID && t.Destination.AdminUnit2.AdminUnit2.AdminUnitID == regionID);

            var totalReliefAmount = regionalPlan.Where(m => m.ProgramID == 1).Sum(m => m.Quantity);
            var totalPsnpAmount   = regionalPlan.Where(m => m.ProgramID == 2).Sum(m => m.Quantity);
            var rfqDetail         = (from transportBidPlanDetail in regionalPlan
                                     select new RfqPrintViewModel
            {
                Source = transportBidPlanDetail.Source.Name,
                Zone = transportBidPlanDetail.Destination.AdminUnit2.Name,
                Woreda = transportBidPlanDetail.Destination.Name,
                WoredaID = transportBidPlanDetail.DestinationID,
                Region = transportBidPlanDetail.Destination.AdminUnit2.AdminUnit2.Name,
                BidReference = bid.BidNumber,
                ProgramID = transportBidPlanDetail.ProgramID,
                Quantity = transportBidPlanDetail.Quantity / 10,
                BidOpeningdate = bid.OpeningDate.ToCTSPreferedDateFormat(datePref),
                BidOpeningTime = bid.startTime
            }
                                     ).Where(m => m.Quantity > 0)
                                    .GroupBy(ac => new
            {
                ac.Woreda,
                ac.Source,
                ac.Region,
                ac.Zone
            })
                                    .Select(ac => new RfqPrintViewModel
            {
                Source         = ac.Key.Source,
                Zone           = ac.Key.Zone,
                Woreda         = ac.Key.Woreda,
                Region         = ac.Key.Region,
                BidReference   = bid.BidNumber,
                Quantity       = ac.Sum(m => m.Quantity),
                ReliefAmount   = totalReliefAmount / 10,
                PsnpAmount     = totalPsnpAmount / 10,
                BidOpeningdate = bid.OpeningDate.ToCTSPreferedDateFormat(datePref),
                BidOpeningTime = bid.startTime
            });
            var reportData = rfqDetail;

            var dataSourceName = "RFQDataset";
            var result         = ReportHelper.PrintReport(reportPath, reportData, dataSourceName);

            return(File(result.RenderBytes, result.MimeType));
        }
コード例 #2
0
        public List <Cats.Areas.Procurement.Models.WarehouseProgramViewModel> GetWoredaWarehouseProgram(int BidPlanID, int WoredaID)
        {
            //this._transportBidPlanDetailService.get
            List <TransportBidPlanDetail> bidDetails = _transportBidPlanDetailService.FindBy(t => t.BidPlanID == BidPlanID && t.DestinationID == WoredaID);
            var planDetail = _transportBidPlanDetailService.FindBy(m => m.BidPlanID == BidPlanID && m.DestinationID == WoredaID && m.ProgramID == 1);
            var hubs       = (from hub in planDetail
                              select new Cats.Models.Hub
            {
                HubID = hub.SourceID
            });
            List <WarehouseProgramViewModel> ret =
                (from hub in hubs
                 select new WarehouseProgramViewModel
            {
                WarehouseID = hub.HubID,
                WarehouseName = hub.Name,
                PSNP = 0,
                Relief = 0,
                BidPlanID = BidPlanID,
                WoredaID = WoredaID
            }).ToList();

            System.Collections.Generic.Dictionary <string, TransportBidPlanDetail> filled = new Dictionary <string, TransportBidPlanDetail>();

            foreach (var i in bidDetails)
            {
                string hash = i.ProgramID + "_" + i.SourceID;
                filled.Add(hash, i);// = i;
            }
            foreach (WarehouseProgramViewModel i in ret)
            {
                string hash_psnp   = "2_" + i.WarehouseID;
                string hash_relief = "1_" + i.WarehouseID;
                if (filled.ContainsKey(hash_psnp))
                {
                    TransportBidPlanDetail psnp = filled[hash_psnp];
                    i.PSNP = psnp.Quantity;
                }
                if (filled.ContainsKey(hash_relief))
                {
                    TransportBidPlanDetail releif = filled[hash_relief];
                    i.Relief = releif.Quantity;
                }
                //  ret.Add(filled, i);// = i;
            }
            return(ret);
        }
コード例 #3
0
ファイル: BidController.cs プロジェクト: nathnael/cats
        public ActionResult ReadWoredasWithOutBidOffer([DataSourceRequest] DataSourceRequest request, int bidID, int regionID)
        {
            var planID = _bidService.FindById(bidID).TransportBidPlanID;

            var bidPlanDetail =
                _transportBidPlanDetailService.FindBy(t => t.Destination.AdminUnit2.AdminUnit2.AdminUnitID == regionID &&
                                                      t.BidPlanID == planID);
            var df = (from planDetail in bidPlanDetail
                      group planDetail by new
            {
                planDetail.DestinationID,
                planDetail.SourceID
            }
                      into gr
                      select gr
                      );

            var detailPlans = df.Select(d => d.ToList()).Select(er => er.FirstOrDefault()).ToList();

            var result = new List <PriceQuotationDetail>();

            foreach (var transportBidPlanDetail in detailPlans)
            {
                var pdetail = transportBidPlanDetail;

                var detail = _transportBidQuotationService.FindBy(t => t.BidID == bidID &&
                                                                  t.SourceID == pdetail.SourceID &&
                                                                  t.DestinationID == pdetail.DestinationID).FirstOrDefault();
                if (detail == null)
                {
                    var n = new PriceQuotationDetail()
                    {
                        SourceWarehouse = pdetail.Source.Name,
                        Zone            = pdetail.Destination.AdminUnit2.Name,
                        Woreda          = pdetail.Destination.Name,
                        Tariff          = 0,
                        Remark          = String.Empty,
                        BidID           = bidID,
                        DestinationID   = pdetail.DestinationID,
                        SourceID        = pdetail.SourceID
                    };
                    result.Add(n);
                }
            }
            return(Json(result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet));
        }
コード例 #4
0
        //[HttpPost]
        //public ActionResult Edit(TransportBidQuotation transportQuote)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        List<TransportBidQuotation> existing =
        //            _bidQuotationService.FindBy(t => t.BidID == transportQuote.BidID
        //                                       && t.TransporterID == transportQuote.TransporterID
        //                                       && t.SourceID == transportQuote.SourceID
        //                                       && t.DestinationID == transportQuote.DestinationID
        //                                       );
        //        if (existing.Count == 1)
        //        {
        //            TransportBidQuotation edited = existing[0];
        //            //                    transportQuote.TransportBidQuotationID = edited.TransportBidQuotationID;
        //            edited.Tariff = transportQuote.Tariff;
        //            edited.Remark = transportQuote.Remark;
        //            edited.Position = transportQuote.Position;
        //            edited.IsWinner = transportQuote.IsWinner;
        //            _bidQuotationService.UpdateTransportBidQuotationHeader(edited);
        //        }
        //        else
        //        {
        //            _bidQuotationService.AddTransportBidQuotationHeader(transportQuote);
        //        }
        //        return View(transportQuote);

        //    }
        //    return RedirectToAction("Index");
        //}
        public List <GoodsMovementDetailViewModel> GetPlannedDistribution(int BidPlanID, int RegionID)
        {
            List <TransportBidPlanDetail> regionalPlan
                = _transportBidPlanDetailService.FindBy(
                      t => t.BidPlanID == BidPlanID &&
                      t.Destination.AdminUnit2.AdminUnit2.AdminUnitID == RegionID);

            List <TransportBidPlanDetail> regionalPlanSorted =
                (from planDetail in regionalPlan
                 orderby planDetail.Source.Name, planDetail.Destination.AdminUnit2.Name, planDetail.DestinationID, planDetail.ProgramID
                 select planDetail

                ).ToList();


            List <GoodsMovementDetailViewModel> regionPlanDistinct = (from rg in regionalPlanSorted

                                                                      select new GoodsMovementDetailViewModel
            {
                //SourceWarehouse = rg.Source,
                SourceName = rg.Source.Name,
                SourceID = rg.Source.HubID,
                DestinationZone = rg.Destination.AdminUnit2.Name,
                RegionName = rg.Destination.AdminUnit2.AdminUnit2.Name,
                RegionID = rg.Destination.AdminUnit2.AdminUnit2.AdminUnitID,
                //DestinationWoreda = rg.Destination,
                DestinationName = rg.Destination.Name,
                DestinationID = rg.Destination.AdminUnitID
            })

                                                                     .GroupBy(rg => new { rg.SourceName, rg.DestinationZone, rg.DestinationName })

                                                                     .Select(s => (GoodsMovementDetailViewModel)s.FirstOrDefault()).ToList();

            return(regionPlanDistinct.ToList());
        }