コード例 #1
0
        public string SaveQuote(EnterCurrentQuote model)
        {
            try
            {
                QuoteSaveCommand cmd1 = new QuoteSaveCommand()
                {
                    ID             = model.QuoteID,
                    CustomerID     = model.Customer.Id,
                    DeviceID       = model.Device.Id,
                    TenderNo       = model.TenderNumber,
                    BaseContractID = model.ContractID,
                    SellingPrice   = model.SellingPriceExclVAT,
                    ROE            = model.ExchangeRate.Rate,
                    ROEDate        = model.ExchangeRate.Date,
                    VAT            = model.VAT,
                    ContractTerm   = model.NoOfMonths,
                    Deleted        = false
                };
                _commandProcessor.Execute(cmd1);

                model.QuoteID = cmd1.ID;

                SaveQuoteCalculation(model.ContractCalculations, model.QuoteID);

                return(string.Empty);
            }
            catch (Exception ex)
            {
                return("Save was unsuccessful: " + ex.Message);
            }
        }
コード例 #2
0
        private EnterCurrentQuote GetCurrentQuote_Model(EWS.Domain.Data.DataModel.Quote entity)
        {
            EnterCurrentQuote model = new EnterCurrentQuote();

            model.QuoteID             = entity.ID;
            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
            };

            model.ContractCalculations = GetNewContractCalculationModels(model.SellingPriceExclVAT);
            UpdateModelFromSavedValues(model.ContractCalculations, model.QuoteID);

            return(model);
        }
コード例 #3
0
        private EnterCurrentQuote GetCurrentQuote_Model(string ContractID)
        {
            if (string.IsNullOrEmpty(ContractID))
            {
                return(null);
            }
            else
            {
                int contractID = Convert.ToInt32(ContractID);
                EWS.Domain.Data.DataModel.Quote quote = GetExistingQuote(contractID);
                if (quote != null)
                {
                    return(GetCurrentQuote_Model(quote));
                }
                else
                {
                    EWS.Domain.Data.DataModel.Contract sourcecontract = GetContract(contractID);
                    if (sourcecontract == null)
                    {
                        return(null);
                    }
                    else
                    {
                        EnterCurrentQuote model = new EnterCurrentQuote();


                        DeviceQuery query = new Domain.Data.Queries.DeviceQuery()
                        {
                            DeviceID = sourcecontract.DeviceID
                        };
                        model.Device = _queryProcessor.Execute(query);

                        model.TenderNumber        = sourcecontract.TenderNo;
                        model.VAT                 = sourcecontract.VAT;
                        model.SellingPriceExclVAT = 0;
                        model.SellingPriceInclVAT = 0;


                        List <EWS.Domain.Data.DataModel.ContractItem> contractitems = GetContractItems(contractID);
                        model.ContractCalculations = new List <QuoteCalculation>();
                        foreach (EWS.Domain.Data.DataModel.ContractItem contractitem in contractitems)
                        {
                            model.ContractCalculations.Add(new QuoteCalculation()
                            {
                                Selected         = true,
                                BasePrice        = contractitem.BasePrice,
                                ContractTypeID   = contractitem.ContractTypeID,
                                ContractType     = contractitem.ContractType.ContractTypeName,
                                ROEPortion       = contractitem.ROEPortion,
                                ROEPortionAmount = contractitem.ROEPortionAmount,
                                ZARPortion       = contractitem.ZARPortion,
                                ZARPortionAmount = contractitem.ZARPortionAmount
                            });
                        }

                        CustomerQuery customerquery = new CustomerQuery()
                        {
                            ID = sourcecontract.CustomerID
                        };
                        Domain.Data.DataModel.Customer customer = _queryProcessor.Execute(customerquery);

                        model.Customer = new Customer()
                        {
                            Id             = sourcecontract.CustomerID,
                            CustomerName   = customer.CustomerNameFriendly,
                            Locality       = customer.CustomerLocality.CustomerLocalityName,
                            RegistrationNo = customer.RegistrationNo
                        };

                        model.ExchangeRate = new ExchangeRate()
                        {
                            Rate = sourcecontract.ROE,
                            Date = sourcecontract.ROEDate
                        };

                        return(model);
                    }
                }
            }
        } //GetCurrentQuote_Model