コード例 #1
0
        public ActionResult AddItem(QuoteItem quoteItem, FormCollection form)
        {
            var quoteID = form["QuoteID"];
            quoteItem.QuoteID = Convert.ToInt32(quoteID);

            _quoteService.SaveItem(quoteItem);
            TempData.Add("StatusMessage", "Quote Item added");
            return RedirectToAction("View", new { id = quoteItem.QuoteID });
        }
コード例 #2
0
        public async Task <IActionResult> AddProduct([FromBody] QuoteItem quoteItem)
        {
            var orgId = getOrg();

            if (quoteItem != null)
            {
                quoteItem.Id             = Guid.NewGuid();
                quoteItem.OrganisationId = orgId;

                quoteItem.TotalCost = quoteItem.UnitCost * quoteItem.Quantity;


                try
                {
                    _context.Add(quoteItem);
                    _context.SaveChanges();

                    var items = _context.QuoteItems.Where(x => x.QuoteRecordId == quoteItem.QuoteRecordId).ToList();
                    var qr    = _context.QuoteRecords.Where(x => x.Id == quoteItem.QuoteRecordId).FirstOrDefault();

                    qr.SubTotal = items.Sum(x => x.TotalCost);
                    qr.Tax      = qr.SubTotal * 0.05f;
                    qr.Total    = qr.SubTotal + qr.Tax;

                    _context.Update(qr);
                    _context.SaveChanges();

                    return(Json(new
                    {
                        msg = "Success"
                    }));
                }
                catch
                {
                    return(Json(new
                    {
                        msg = "Failed"
                    }));
                }


                //StatusMessage = "New Vendor successfully created.";
            }

            //StatusMessage = "Error! Check fields...";
            //ViewData["StatusMessage"] = StatusMessage;
            return(Json(new
            {
                msg = "No Data"
            }));
        }
コード例 #3
0
        public HomePageViewModel(ISettingsService settingsService,
                                 IDatabaseService databaseService,
                                 IToastMessage toastMessage)
        {
            _settingsService = settingsService;
            _databaseService = databaseService;
            _toastMessage    = toastMessage;

            //_databaseService.DeleteDatabase();

            var dbJoke = _databaseService.GetRandomJoke();

            if (dbJoke != null)
            {
                Joke = dbJoke;
            }

            var dbQuote = _databaseService.GetRandomQuote();

            if (dbQuote != null)
            {
                Quote = new QuoteItem
                {
                    Tags  = dbQuote.Tags.Split(';').ToList(),
                    Icon  = dbQuote.Icon,
                    Id    = dbQuote.Id,
                    Quote = dbQuote.Quote
                }
            }
            ;

            var dbMeme = _databaseService.GetRandomMeme();

            if (dbMeme != null)
            {
                Meme = new MemeDbItem
                {
                    Image = dbMeme.Image,
                    Id    = dbMeme.Id
                }
            }
            ;

            InitSettings();

            if (!ExtensionMethods.IsConnected())
            {
                _toastMessage.ShowToast(notConnectedMessage);
            }
        }
コード例 #4
0
        // GET: QuoteItems/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            QuoteItem quoteItem = db.QuoteItems.Find(id);

            if (quoteItem == null)
            {
                return(HttpNotFound());
            }
            return(View(quoteItem));
        }
コード例 #5
0
ファイル: QuotesController.cs プロジェクト: BizzyQuote/BQ2013
        public ActionResult AddQuoteItem(QuoteItem item)
        {
            Material           material;
            List <WasteFactor> wasteFactors = new List <WasteFactor>();

            using (var mm = new MaterialsManager())
            {
                material = mm.SingleMaterial(item.MaterialID.GetValueOrDefault());
            }
            using (var qm = new QuoteManager())
            {
                var quote = qm.Single(item.QuoteID);
                using (var wfm = new WasteFactorManager())
                {
                    wasteFactors = wfm.ByCompany(quote.CompanyID.GetValueOrDefault()).ToList();
                }
                decimal wasteFactor =
                    wasteFactors.Any(
                        wf => wf.ProductID == item.ProductID && wf.ProductLineID == item.ProductLineID)
                                ? wasteFactors.First(
                        wf => wf.ProductID == item.ProductID && wf.ProductLineID == item.ProductLineID)
                    .WasteFactor1.GetValueOrDefault() : 0M;
                // calculate the amount and save
                switch (item.Measurement)
                {
                case (Measurement.SquareFeet):
                    if (item.SquareFt.GetValueOrDefault() == 0)
                    {
                        item.SquareFt = item.Height * item.Width;
                    }
                    var pieceSqFt = (material.Height - material.Overlap.GetValueOrDefault()) * (1M / 12M) * material.Width;
                    var pieces    = Math.Ceiling((decimal)(item.SquareFt.GetValueOrDefault() * (1M + wasteFactor) / pieceSqFt));

                    item.Amount = pieces * material.UnitCost;
                    break;

                case (Measurement.LinearFeet):
                    item.Amount = item.LinearFt * (1M + wasteFactor) * material.UnitCost / material.Width;
                    break;

                case (Measurement.Constant):
                    item.Amount = item.Dollars;
                    break;
                }

                item = qm.CreateItem(item);
            }
            return(RedirectToAction("Edit", new { id = item.QuoteID }));
        }
コード例 #6
0
        public decimal CalculateProductsComponent(QuoteItem quoteItem, IList <int> modelTypes)
        {
            var listQuery = this.Context.ProductAccessories
                            .Where(a => a.ParentProductId == quoteItem.ProductId &&
                                   a.RequirementTypeId == (int)RequirementTypeEnums.Standard);

            if (modelTypes != null)
            {
                listQuery = listQuery.Where(a => modelTypes.Contains(a.Product.ProductModelTypeId));
            }

            var listCount = listQuery.ToList();

            return(listCount.Count > 0 ? listCount.Sum(i => i.Quantity * quoteItem.Quantity) : (quoteItem == null) ? 0 : quoteItem.Quantity);
        }
コード例 #7
0
        public int SaveItem(QuoteItem quoteItem)
        {
            if (quoteItem.ID == 0)
            {
                Context.QuoteItem.Add(quoteItem);
            }
            else
            {
                Context.QuoteItem.Attach(quoteItem);
                Context.Entry(quoteItem).State = System.Data.Entity.EntityState.Modified;
            }

            Context.SaveChanges();
            return(quoteItem.ID);
        }
コード例 #8
0
        public async void RequestQuote()
        {
            try
            {
                if (!string.IsNullOrEmpty(quoteUrl))
                {
                    Scroll = ScrollEnum.Scroll;
                    var quotes = await _tronaldDumpService.GetQuoteAsync(quoteUrl);

                    if (quotes != null)
                    {
                        var id = 1;

                        if (Quotes.Count > 0)
                        {
                            id = Quotes.Last().Id + 1;
                        }

                        var quote = new QuoteItem
                        {
                            Id    = id,
                            Quote = quotes.value,
                            Tags  = quotes.tags,
                            Icon  = iconUrl
                        };

                        Quotes.Add(quote);

                        if (Device.RuntimePlatform == Device.Android || Device.RuntimePlatform == Device.UWP)
                        {
                            await _databaseService.AddQuote(new QuoteDbItem { Icon  = quote.Icon,
                                                                              Id    = quote.Id,
                                                                              Quote = quote.Quote,
                                                                              Tags  = String.Join(";", quote.Tags.ToArray()) });
                        }
                    }
                    else
                    {
                        _toastMessage.ShowToast(commonErrorMessage);
                    }
                }
                else
                {
                    _toastMessage.ShowToast(apiErrorMessage);
                }
            }
            catch { _toastMessage.ShowToast(commonErrorMessage); }
        }
コード例 #9
0
        // GET: QuoteItems/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            QuoteItem quoteItem = db.QuoteItems.Find(id);

            if (quoteItem == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AssayID = new SelectList(db.ProtocolNotebooks, "AssayID", "AssayName", quoteItem.AssayID);
            ViewBag.QuoteID = new SelectList(db.QuoteEstimates, "QuoteID", "ModifiedBy", quoteItem.QuoteID);
            return(View(quoteItem));
        }
コード例 #10
0
        private bool LoadProductForQuoteItem(QuoteItem item)
        {
            if (item == null)
            {
                return(false);
            }

            if (item.Product == null)
            {
                item.Product = Db.Context.Products
                               .Where(w => w.ProductId == item.ProductId)
                               .FirstOrDefault();
            }

            return(item.Product == null ? false : true);
        }
コード例 #11
0
        public virtual QuoteItem ToQuoteItem(Product product, long quantity)
        {
            var retVal = new QuoteItem();

            retVal.InjectFrom <NullableAndEnumValueInjecter>(product);

            retVal.Id        = null;
            retVal.ImageUrl  = product.PrimaryImage != null ? product.PrimaryImage.Url : null;
            retVal.ListPrice = product.Price.ListPrice;
            retVal.ProductId = product.Id;
            retVal.SalePrice = product.Price.SalePrice;
            retVal.ProposalPrices.Add(new TierPrice(product.Price.SalePrice, quantity));
            retVal.SelectedTierPrice = retVal.ProposalPrices.First();

            return(retVal);
        }
コード例 #12
0
        private async Task <IEnumerable <QuoteItem> > MapAsync(Basket basket)
        {
            var items = new List <QuoteItem>();

            foreach (var item in basket.Items)
            {
                var catalogItem = await _itemRepository.GetByIdAsync(item.CatalogItemId);

                var itemOrdered = new CatalogItemExcerpt(
                    catalogItem.Id, catalogItem.Gtin, catalogItem.GtinRegistryId, catalogItem.Name, catalogItem.PictureUri);

                var quoteItem = new QuoteItem(itemOrdered, item.UnitPrice, item.Quantity);
                items.Add(quoteItem);
            }
            return(items);
        }
コード例 #13
0
        public static QuoteItem ToQuoteItem(this Product product, long quantity)
        {
            var quoteItem = new QuoteItem();

            quoteItem.InjectFrom <NullableAndEnumValueInjecter>(product);

            quoteItem.Id        = null;
            quoteItem.ImageUrl  = product.PrimaryImage != null ? product.PrimaryImage.Url : null;
            quoteItem.ListPrice = product.Price.ListPrice;
            quoteItem.ProductId = product.Id;
            quoteItem.SalePrice = product.Price.SalePrice;
            quoteItem.ProposalPrices.Add(new TierPrice(product.Price.SalePrice, quantity));
            quoteItem.SelectedTierPrice = quoteItem.ProposalPrices.First();

            return(quoteItem);
        }
コード例 #14
0
ファイル: Form1.cs プロジェクト: KevinC1203/DDETransfer
        private void OnAdvise(object sender, DdeAdviseEventArgs args)
        {
            DdeClient dc  = (DdeClient)sender;
            string    key = dc.Service + "|" + dc.Topic + "!" + args.Item;

            try
            {
                QuoteItem tmpItem = collectData[key];
                collectData[key].value = args.Data;
                foreach (string strItem in tmpItem.sendItem)
                {
                    DDEServer.Advise(myTopic, strItem);
                }
            }
            catch { }
        }
コード例 #15
0
        public QuoteItem GetQuoteItem(int quoteId, int quoteItemId)
        {
            Quote q = GetById(quoteId);

            List <QuoteItem> lst = new List <QuoteItem>(q.QuoteItems);
            QuoteItem        qi  = lst.Find(delegate(QuoteItem record)
            {
                if (record.ID == quoteItemId)
                {
                    return(true);
                }

                return(false);
            });

            return(qi);
        }
コード例 #16
0
        public int CalculateVRVIndoor(QuoteItem item)
        {
            if (!LoadProductForQuoteItem(item))
            {
                return(0);
            }

            var prod = item.Product;

            if (prod.ProductModelTypeId == (int)ProductModelTypeEnum.Indoor &&
                prod.ProductFamilyId == (int)ProductFamilyEnum.VRV)
            {
                return(CalculateProductsComponent(new QuoteItem[] { item }, new int[] { (int)ProductModelTypeEnum.Outdoor }));
            }

            return(0);
        }
コード例 #17
0
        public int CalculateRTU(QuoteItem item)
        {
            if (!LoadProductForQuoteItem(item))
            {
                return(0);
            }

            var prod = item.Product;

            if (prod.ProductModelTypeId == (int)ProductModelTypeEnum.Outdoor &&
                (prod.ProductFamilyId == (int)ProductFamilyEnum.LightCommercialSplitSystem || prod.ProductFamilyId == (int)ProductFamilyEnum.LightCommercialPackagedSystem))
            {
                return(CalculateProductsComponent(new QuoteItem[] { item }));
            }

            return(0);
        }
コード例 #18
0
        public async Task <ActionResult <QuoteItem> > PostQuoteItem(QuoteItem quoteItem)
        {
            _context.QuoteItems.Add(quoteItem);
            if (quoteItem.author == "")
            {
                ModelState.AddModelError("Author", "Не добавлен автор");
            }
            // если есть ошибки - возвращаем ошибку 400
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetQuoteItem", new { id = quoteItem.Id }, quoteItem));
        }
コード例 #19
0
        public static QuoteModule.Client.Model.QuoteItem ToQuoteServiceModel(this QuoteItem webModel)
        {
            var serviceModel = new QuoteModule.Client.Model.QuoteItem();

            serviceModel.InjectFrom <NullableAndEnumValueInjecter>(webModel);

            serviceModel.Currency       = webModel.Currency.Code;
            serviceModel.ListPrice      = (double)webModel.ListPrice.Amount;
            serviceModel.ProposalPrices = webModel.ProposalPrices.Select(pp => pp.ToQuoteServiceModel()).ToList();
            serviceModel.SalePrice      = (double)webModel.SalePrice.Amount;

            if (webModel.SelectedTierPrice != null)
            {
                serviceModel.SelectedTierPrice = webModel.SelectedTierPrice.ToQuoteServiceModel();
            }

            return(serviceModel);
        }
コード例 #20
0
        public virtual quoteDto.QuoteItem ToQuoteItemDto(QuoteItem quoteItem)
        {
            var serviceModel = new quoteDto.QuoteItem();

            serviceModel.InjectFrom <NullableAndEnumValueInjecter>(quoteItem);

            serviceModel.Currency       = quoteItem.Currency.Code;
            serviceModel.ListPrice      = (double)quoteItem.ListPrice.Amount;
            serviceModel.ProposalPrices = quoteItem.ProposalPrices.Select(ToQuoteTierPriceDto).ToList();
            serviceModel.SalePrice      = (double)quoteItem.SalePrice.Amount;

            if (quoteItem.SelectedTierPrice != null)
            {
                serviceModel.SelectedTierPrice = ToQuoteTierPriceDto(quoteItem.SelectedTierPrice);
            }

            return(serviceModel);
        }
コード例 #21
0
        private static void NotifyInvoiceChanged(QuoteItem obj)
        {
            Quote quote = null;

            if (obj is PurchaseQuoteItem)
            {
                quote = ((PurchaseQuoteItem)obj).PurchaseQuote;
            }
            if (obj is SalesQuoteItem)
            {
                quote = ((SalesQuoteItem)obj).SalesQuote;
            }
            if (quote != null)
            {
                quote.Recalculate("Total");
                quote.Recalculate("TotalNet");
            }
        }
コード例 #22
0
        protected void rptQuoteLine_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                QuoteItem qi = (e.Item.DataItem as QuoteItem);

                if (qi != null)
                {
                    TotalCount = TotalCount + qi.Subtotal;
                    QuoteLineEditor qle = (e.Item.FindControl("QuoteLineEditor1") as QuoteLineEditor);
                    qle.Mode        = EditionMode.View;
                    qle.QuoteId     = QuoteId;
                    qle.QuoteItemId = qi.ID;
                    qle.QuoteItem   = qi;
                    qle.DataBind();
                }
            }
        }
コード例 #23
0
        protected override RequestResult OnRequest(DdeConversation conversation, string item, int format)
        {
            if (format == 1)
            {
                string key = item;
                try
                {
                    QuoteItem tmpddeItem = sendData[key];
                    return(new RequestResult(sendData[key].value));
                    //return new RequestResult(dic_clients[tmpddeItem.collectServer + "|"+ tmpddeItem.collectTopic].Request(tmpddeItem.collectItem,1,1000));
                }
                catch
                {
                    //return new RequestResult(sendData[key].value);
                }
            }

            return(RequestResult.NotProcessed);
        }
        public async Task Handle(AddQuoteItemToQuoteCommand message)
        {
            var quote = await _quoteRepository.GetById(message.QuoteId);

            var quoteItem = QuoteItem.Create(message.Name, message.Description, message.Total);

            quote.AddQuoteItem(quoteItem);
            await _unitOfWork.SaveChangesAsync();

            message.Id = quoteItem.Id;

            // Optional:
            var quoteItemAddedToQuoteEvent = new QuoteItemAddedToQuoteEvent
            {
                QuoteId     = quote.Id,
                QuoteItemId = quoteItem.Id
            };
            await _bus.RaiseEvent(quoteItemAddedToQuoteEvent);
        }
コード例 #25
0
        public void InsertQuoteItem(QuoteItem qi)
        {
            // Calculate Line Total and Tax Total
            if (qi.taxable)
            {
                qi.tax_total = 0.10 * (qi.qty * qi.rate);
            }
            else
            {
                qi.tax_total = 0.00;
            }

            qi.line_total = (qi.qty * qi.rate) + qi.tax_total;

            try
            {
                connection = new SQLiteConnection(connection_String);
                connection.Open();
                cmd = connection.CreateCommand();

                cmd.Parameters.Add(new SQLiteParameter("@jobno", qi.jobno));
                cmd.Parameters.Add(new SQLiteParameter("@qty", qi.qty));
                cmd.Parameters.Add(new SQLiteParameter("@item", qi.item));
                cmd.Parameters.Add(new SQLiteParameter("@rate", qi.rate));
                cmd.Parameters.Add(new SQLiteParameter("@descr", qi.descr));
                cmd.Parameters.Add(new SQLiteParameter("@grouping", qi.grouping));
                cmd.Parameters.Add(new SQLiteParameter("@taxable", qi.taxable));
                cmd.Parameters.Add(new SQLiteParameter("@discountable", qi.discountable));
                cmd.Parameters.Add(new SQLiteParameter("@printable", qi.printable));
                cmd.Parameters.Add(new SQLiteParameter("@line_total", qi.line_total));
                cmd.Parameters.Add(new SQLiteParameter("@tax_total", qi.tax_total));
                cmd.Parameters.Add(new SQLiteParameter("@tab_index", qi.tab_index));
                cmd.Parameters.Add(new SQLiteParameter("@row_index", qi.row_index));

                cmd.CommandText = String.Format("INSERT into QTE_ITEMS VALUES (@qty, @item, @rate, @descr, @grouping, @taxable,@discountable,@printable,@jobno,@line_total,@tax_total,@tab_index,@row_index)");
                cmd.ExecuteNonQuery();
                connection.Close();
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show(ex.Message);
            }
        }
コード例 #26
0
ファイル: Quote.cs プロジェクト: falberthen/EcommerceDDD
    public QuoteItem AddItem(QuoteItemProductData productData)
    {
        if (productData == null)
        {
            throw new BusinessRuleException("The quote item must have a product.");
        }

        if (productData.Quantity == 0)
        {
            throw new BusinessRuleException("The product quantity must be at last 1.");
        }

        var quoteItem = new QuoteItem(Guid.NewGuid(),
                                      productData.ProductId,
                                      productData.Quantity);

        _items.Add(quoteItem);

        return(quoteItem);
    }
コード例 #27
0
        public QuoteItem Edit(int?id)
        {
            var editItem = new QuoteItem();

            if (id != 0)
            {
                var item = Db.Quotes
                           .Select(x => new QuoteItem
                {
                    Id           = x.Id,
                    Name         = x.Name,
                    CompanyName  = x.Company.Name,
                    CompanyId    = x.CompanyId,
                    CustomDesign = x.CustomDesign
                })
                           .FirstOrDefault(x => x.Id == id);
                return(item);
            }

            return(editItem);
        }
コード例 #28
0
        public QuoteItemModel(QuoteItem item)
        {
            var product        = item.Product;
            var serialisedItem = item.SerialisedItem;

            this.Product     = serialisedItem?.Name ?? product?.Name;
            this.Description = serialisedItem?.Description ?? product?.Description;
            this.Details     = item.Details;
            this.Quantity    = item.Quantity;
            // TODO: Where does the currency come from?
            var currency = "€";

            this.Price = item.UnitPrice.ToString("0.00") + " " + currency;

            // TODO: Make TotalPrice a derived field on ProductQuote
            var totalPrice = item.Quantity * item.UnitPrice;

            this.Amount = totalPrice.ToString("0.00") + " " + currency;

            this.Comment = item.Comment;
        }
コード例 #29
0
        public Quote GetQuote(string id)
        {
            #region 填充测试数据
            Quote quote = new Quote();
            quote.Id      = id;
            quote.Company = "MarvellousWorks";

            QuoteItem[] items = new QuoteItem[2];
            items[0]                   = new QuoteItem();
            items[0].ProductID         = 1;
            items[0].Price             = 220;
            items[0].QuantitiveInStock = 10;
            items[1]                   = new QuoteItem();
            items[1].ProductID         = 2;
            items[1].Price             = 3.4;
            items[1].QuantitiveInStock = 3000;
            quote.Items                = items;
            #endregion

            return(quote);
        }
コード例 #30
0
        public int CalculateSplitOutdoor(QuoteItem item)
        {
            if (!LoadProductForQuoteItem(item))
            {
                return(0);
            }

            var prod = item.Product;

            if ((prod.ProductModelTypeId == (int)ProductModelTypeEnum.Outdoor ||
                 prod.ProductModelTypeId == (int)ProductModelTypeEnum.System) &&
                (prod.ProductFamilyId == (int)ProductFamilyEnum.MiniSplit ||
                 prod.ProductFamilyId == (int)ProductFamilyEnum.AlthermaSplit ||
                 prod.ProductFamilyId == (int)ProductFamilyEnum.SkyAir ||
                 prod.ProductFamilyId == (int)ProductFamilyEnum.MultiSplit))
            {
                return(CalculateProductsComponent(new QuoteItem[] { item }, new int[] { (int)ProductModelTypeEnum.Outdoor }));
            }

            return(0);
        }
コード例 #31
0
        private QuoteItem fetchMemItemMatch(EntityVersion newVersion, Code langCode, Code memCode, Code wordCode, int quantity, decimal rate, ref int sequence, QuoteItem[] existingItems)
        {
            QuoteItem storeItem = null;

            // We have a new Item
            if (storeItem == null)
            {
                storeItem = new QuoteItem();

                storeItem.Quote_IID         = newVersion.IID;
                storeItem.Quote_Version_IID = newVersion.Entity_Version_IID;
                storeItem.Language_CID      = langCode;
                storeItem.Sequence_Number   = sequence;
                storeItem.Charge_Item_CID   = memCode;
                storeItem.Quantity          = quantity;
                storeItem.Unit_CID          = wordCode;
                storeItem.Unit_Rate         = rate;
            }

            return(storeItem);
        }