Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        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;
        }