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)); }
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); }
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)); }
//[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()); }