public List <QuoteCalculation> GetModelList(int QuoteID) { List <QuoteCalculation> modellist = new List <QuoteCalculation>(); QuoteCalculationsQuery qry = new QuoteCalculationsQuery() { QuoteID = QuoteID }; IEnumerable <EWS.Domain.Data.DataModel.QuoteCalculation> entitylist = _queryProcessor.Execute(qry); foreach (EWS.Domain.Data.DataModel.QuoteCalculation entity in entitylist) { QuoteCalculation model = new QuoteCalculation() { ContractTypeID = entity.ContractTypeID, ContractType = entity.ContractType.ContractTypeName, BasePrice = entity.SellingPricePercAmount / (entity.SellingPricePerc / 100), SellingPricePerc = entity.SellingPricePerc, ROEPortion = entity.ROEPortion, ZARPortion = entity.ZARPortion, ROEPortionAmount = entity.ROEPortionAmount, ZARPortionAmount = entity.ZARPortionAmount }; //ContractTermQuery ctqry = new ContractTermQuery() { NoOfMonths = entity.ContractTerm }; //EWS.Domain.Data.DataModel.ContractTerm contractterm = _queryProcessor.Execute(ctqry); //model.ContractTerm = contractterm; modellist.Add(model); } return(modellist); }
public ActionResult Summary(long id) { var drivers = db.Drivers.Where(d => d.QuoteId == id).ToList(); var vehicles = db.Vehicles.Where(v => v.QuoteId == id).ToList(); ViewBag.Drivers = drivers; ViewBag.Vehicles = vehicles; var userId = User.Identity.GetUserId(); var aiaUserId = db.AIAUsers.First(u => u.ApplicationUserId == userId).Id; Quote quote = new Quote(); quote = db.Quotes.SingleOrDefault(d => d.Id == id && d.AIAUserId == aiaUserId && !d.Submitted); if (quote == null) { return(View("Error")); } QuoteCalculation qc = new QuoteCalculation(); quote.Price = qc.calcQuote(quote, drivers, vehicles); db.Entry(quote).State = EntityState.Modified; db.SaveChanges(); ViewBag.DriverCost = qc.driverCost(); ViewBag.VehicleCost = qc.vehicleCost(); return(View(quote)); }
private EWS.Domain.Model.Quote GetQuote_Model(EWS.Domain.Data.DataModel.Quote entity) { EWS.Domain.Model.Quote model = new EWS.Domain.Model.Quote(); model.QuoteID = entity.ID; model.QuoteRef = entity.QuoteRef; model.ContractID = entity.BaseContractID; model.TenderNumber = entity.TenderNo; model.VAT = entity.VAT; model.SellingPriceExclVAT = entity.SellingPrice; model.SellingPriceInclVAT = Math.Round(entity.SellingPrice * Convert.ToDecimal(entity.VAT / 100 + 1), 2); model.NoOfMonths = entity.ContractTerm; model.Customer = GetCustomer_Model(entity.CustomerID); DeviceQuery dqry = new Domain.Data.Queries.DeviceQuery() { DeviceID = entity.DeviceID }; model.Device = _queryProcessor.Execute(dqry); model.ExchangeRate = new ExchangeRate() { Rate = entity.ROE, Date = entity.ROEDate }; QuoteCalculationsQuery qcqry = new QuoteCalculationsQuery() { QuoteID = entity.ID }; IEnumerable <Domain.Data.DataModel.QuoteCalculation> listofQuoteCalcs = _queryProcessor.Execute(qcqry); model.ContractCalculations = new List <QuoteCalculation>(); foreach (Domain.Data.DataModel.QuoteCalculation calc in listofQuoteCalcs) { QuoteCalculation calcmodel = new QuoteCalculation(); MapEntityToModel(calc, calcmodel); model.ContractCalculations.Add(calcmodel); QuoteCalculationItem[] years = GetQuoteCalculationItemsStructure(calc, (short)(model.NoOfMonths / 12), model.StartDate); calcmodel.QuoteCalculationItems = Recalculate(calcmodel, years, model.StartDate); } return(model); }
public QuoteCalculationItem[] Recalculate(QuoteCalculation calcmodel, QuoteCalculationItem[] CalculationItems, DateTime?StartDate) { EWS.Domain.Events.Quoting helper = new EWS.Domain.Events.Quoting() { //SellingPrice = entity.SellingPrice, //RateOfExchange = entity.ROE, //RateOfExchangeDate = entity.ROEDate, //SellingPricePerc = calcmodel.SellingPricePerc, //ROEPortion = calcmodel.ROEPortion, ROEPortionAmount = calcmodel.ROEPortionAmount, ZARPortionAmount = calcmodel.ZARPortionAmount, StartDate = StartDate }; helper.ApplyCalculationLogic(ref CalculationItems); return(CalculationItems); }
List <QuoteCalculation> GetNewContractCalculationModels(decimal BasePrice) { ContractTypesQuery query = new ContractTypesQuery(); IEnumerable <Domain.Data.DataModel.ContractType> contractypes = _queryProcessor.Execute(query); List <QuoteCalculation> models = new List <QuoteCalculation>(); foreach (Domain.Data.DataModel.ContractType contracttype in contractypes) { QuoteCalculation model = new QuoteCalculation(0, contracttype.ID, contracttype.ContractTypeName, 0, BasePrice, EWS.Domain.Data.DataModel.ContractTerm.DefaultNoOfMonths); //ContractTermQuery ctqry = new ContractTermQuery( ) { NoOfMonths = EWS.Domain.Data.DataModel.ContractTerm.DefaultNoOfMonths}; //model.ContractTerm = _queryProcessor.Execute(ctqry); models.Add(model); } return(models); }
public void Handle(QuoteCalculationSaveCommand command) { var entity = _entities.Get <QuoteCalculation>().SingleOrDefault(p => p.ID == command.ID); if (entity == null) { entity = new QuoteCalculation() { ID = command.ID, QuoteID = command.QuoteID, ContractTypeID = command.ContractTypeID, SellingPricePerc = command.SellingPricePerc, SellingPricePercAmount = command.SellingPricePercAmount, BasePrice = command.BasePrice, ROEPortion = command.ROEPortion, ZARPortion = command.ZARPortion, ROEPortionAmount = command.ROEPortionAmount, ZARPortionAmount = command.ZARPortionAmount }; _entities.Create(entity); } else { entity.QuoteID = command.QuoteID; entity.ContractTypeID = command.ContractTypeID; entity.SellingPricePerc = command.SellingPricePerc; entity.SellingPricePercAmount = command.SellingPricePercAmount; entity.BasePrice = command.BasePrice; entity.ROEPortion = command.ROEPortion; entity.ZARPortion = command.ZARPortion; entity.ROEPortionAmount = command.ROEPortionAmount; entity.ZARPortionAmount = command.ZARPortionAmount; } _entities.SaveChanges(); command.ID = entity.ID; }
private static void MapEntityToModel(Domain.Data.DataModel.QuoteCalculation calc, QuoteCalculation model) { model.Selected = true; model.ContractCalculationID = calc.ID; model.ContractTypeID = calc.ContractTypeID; model.ROEPortion = calc.ROEPortion; model.ROEPortionAmount = calc.ROEPortionAmount; model.ZARPortion = calc.ZARPortion; model.ZARPortionAmount = calc.ZARPortionAmount; //model.BasePrice = calc.SellingPricePercAmount * (1 + calc.SellingPricePercAmount / 100); model.BasePrice = calc.BasePrice; model.SellingPricePerc = calc.SellingPricePerc; model.ContractType = calc.ContractType.ContractTypeName; }