Beispiel #1
0
        public Dictionary <string, Dictionary <string, string> > UpdateQuantityByQuoteId(int currentQuoteId, int quantity)
        {
            Dictionary <string, Dictionary <string, string> > dictItemIDCountTotalPrice = new Dictionary <string, Dictionary <string, string> >();
            // Quote quote = _Context.Quote.GetSingle(e => e.QuoteID == currentQuoteId && e.StatusID == (int)QuoteStatusEnum.Open);
            Quote quote = _Context.Quote.GetSingle(e => e.QuoteID == currentQuoteId && (e.StatusID != (int)QuoteStatusEnum.InActive || e.StatusID != (int)QuoteStatusEnum.Invoiced));

            if (quote != null)
            {
                //QuoteDetail quoteDetail = _Context.QuoteDetail.GetAll();
                //List<QuoteDetail> lstQd = _Context.QuoteDetail.GetAll(e => e.QuoteID == quote.QuoteID && e.DWSelectionID == (int)DecisionWhizardStatusEnum.Yes).ToList();
                List <QuoteDetail> lstQd = _Context.QuoteDetail.GetAll(e => e.QuoteID == quote.QuoteID && e.DWSelectionID != (int)DecisionWhizardStatusEnum.No).ToList();
                lstQd = lstQd.GroupBy(e => e.ItemID).Select(a => a.FirstOrDefault()).ToList();
                foreach (QuoteDetail qd in lstQd)
                {
                    decimal?totalPrice;
                    if (qd != null)
                    {
                        if (quantity == 1)
                        {
                            if (qd.Quantity < 100)
                            {
                                qd.Quantity = qd.Quantity + 1;
                            }
                        }
                        else
                        {
                            if (qd.Quantity > 1)
                            {
                                qd.Quantity = qd.Quantity - 1;
                            }
                        }
                        totalPrice = qd.Item.Price * qd.Quantity;
                        //Updating Penworthy Updated Date


                        _Context.QuoteDetail.SaveChanges();
                        Dictionary <string, string> countTotalPrice = new Dictionary <string, string>();
                        countTotalPrice.Add(qd.Quantity.ToString(), totalPrice.ToString());
                        dictItemIDCountTotalPrice.Add(qd.ItemID.ToString(), countTotalPrice);
                    }
                }
                if (quote != null)
                {
                    ItemListViewService lstviewsvc = new ItemListViewService();
                    lstviewsvc.UserVM = UserVM;
                    lstviewsvc.UpdatedDateTime(currentQuoteId);
                }
                if (UserVM != null)
                {
                    UserVM.SCCount = lstQd.Sum(e => e.Quantity);
                }
            }
            return(dictItemIDCountTotalPrice);
        }
Beispiel #2
0
        private void UpdateQuoteDetails(int oldQuoteid, int newQuoteid)
        {
            List <QuoteDetail> quoteDetails = _Context.QuoteDetail.GetAll(e => e.QuoteID == oldQuoteid && e.DWSelectionID == (int)DecisionWhizardStatusEnum.Yes).ToList();
            Quote oldQuote = _Context.Quote.GetSingle(e => e.QuoteID == oldQuoteid);
            Quote newQuote = _Context.Quote.GetSingle(e => e.QuoteID == newQuoteid);

            newQuote.IncludeCatalogStatus = oldQuote.IncludeCatalogStatus;
            newQuote.UserID = oldQuote.UserID;
            foreach (QuoteDetail qd in quoteDetails)
            {
                qd.QuoteID    = newQuoteid;
                qd.UpdateDate = DateTime.Now;

                _Context.QuoteDetail.SaveChanges();
            }
            ItemListViewService itemlstsrvc = new ItemListViewService();

            itemlstsrvc.UserVM = UserVM;
            itemlstsrvc.UpdatedDateTime(oldQuote.QuoteID);
            CustomerCatalogBarcodeManipulation(UserVM.CRMModelProperties.CustAutoID, newQuoteid);
        }
Beispiel #3
0
        public List <string> UpdateQuantity(int currentQuoteId, int quantity, string itemID, string type = "")
        {
            ItemService itemsrvc = new ItemService();

            itemsrvc.UserVM = UserVM;
            Quote currentQuote = itemsrvc.GetQuoteByLoggedIn(currentQuoteId, type);
            //   Quote currentQuote = _Context.Quote.GetSingle(e => e.QuoteID == currentQuoteId);
            List <string>      lstPriceQuantity = new List <string>();
            List <QuoteDetail> lstQD            = currentQuote.QuoteDetails.ToList();
            decimal?           totalPrice       = 0;

            if (lstQD != null)
            {
                QuoteDetail iQD = lstQD.Where(e => e.ItemID == itemID).FirstOrDefault();
                if (iQD != null)
                {
                    iQD.Quantity = quantity;
                    totalPrice   = iQD.Item.Price * quantity;
                    //Updating Penworthy Updated Date
                    if (currentQuote != null)
                    {
                        ItemListViewService lstviewsvc = new ItemListViewService();
                        lstviewsvc.UserVM = UserVM;
                        lstviewsvc.UpdatedDateTime(currentQuoteId);
                    }
                    _Context.QuoteDetail.SaveChanges();
                }
            }
            if (UserVM != null)
            {
                UserVM.SCCount = currentQuote.QuoteDetails.Sum(e => e.Quantity);
                lstPriceQuantity.Add(UserVM.SCCount.ToString());
            }
            lstPriceQuantity.Add(totalPrice.ToString());
            lstPriceQuantity.Add(currentQuote.QuoteDetails.Sum(e => e.Item.Price * e.Quantity).ToString());
            return(lstPriceQuantity);
        }
Beispiel #4
0
        public List <string> DeleteItem(int quoteid, string item, int QuoteTypeID)
        {
            Quote currentQuote             = _Context.Quote.GetSingle(e => e.QuoteID == quoteid);
            List <QuoteDetail> quoteDetail = new List <QuoteDetail>();

            if (QuoteTypeID == (int)QuoteTypeEnum.DecisionWhizard)
            {
                quoteDetail = _Context.QuoteDetail.GetAll(e => e.QuoteID == quoteid).ToList();
            }
            else
            {
                quoteDetail = _Context.QuoteDetail.GetAll(e => e.QuoteID == quoteid && e.DWSelectionID == (int)DecisionWhizardStatusEnum.Yes).ToList();
            }
            int           itemsCount = 0;
            decimal?      itemsprice = 0;
            List <string> lstItemids = quoteDetail.Select(e => e.ItemID).ToList();

            switch (item)
            {
            case "DeleteAll":
            {
                foreach (QuoteDetail qd in quoteDetail)
                {
                    _Context.QuoteDetail.Delete(qd);
                    _Context.Quote.SaveChanges();
                }
                DWChangesStatusToNew(lstItemids);
                itemsCount = _Context.QuoteDetail.GetAll(e => e.QuoteID == quoteid && e.DWSelectionID == (int)DecisionWhizardStatusEnum.Yes).ToList().Sum(e => e.Quantity);
                itemsprice = _Context.QuoteDetail.GetAll(e => e.QuoteID == quoteid && e.DWSelectionID == (int)DecisionWhizardStatusEnum.Yes).ToList().Sum(e => e.Quantity * e.Item.Price);

                break;
            }

            case "IncreaseAll":
            {
                foreach (QuoteDetail qd in quoteDetail)
                {
                    qd.Quantity = qd.Quantity + 1;
                    _Context.Quote.SaveChanges();
                }
                itemsCount = quoteDetail.Sum(e => e.Quantity);
                itemsprice = quoteDetail.Sum(e => e.Quantity * e.Item.Price);
                break;
            }

            case "DecreaseAll":
            {
                foreach (QuoteDetail qd in quoteDetail)
                {
                    qd.Quantity = qd.Quantity - 1;
                    _Context.Quote.SaveChanges();
                }
                itemsCount = quoteDetail.Sum(e => e.Quantity);
                itemsprice = quoteDetail.Sum(e => e.Quantity * e.Item.Price);
                break;
            }

            case "Sumbit":
            {
                Quote quote = _Context.Quote.GetSingle(e => e.QuoteID == quoteid);
                if (quote != null)
                {
                    if (ValidateQuoteID(quoteid))
                    {
                        itemsCount = SetStateForQuote(quote, (int)QuoteStatusEnum.Transferred);
                    }
                    else
                    {
                        if (quote.StatusID == (int)QuoteStatusEnum.Open)
                        {
                            itemsCount = SetStateForQuote(quote, (int)QuoteStatusEnum.HoldRepresentative);
                        }
                    }
                }
                break;
            }

            default:
            {
                if (!String.IsNullOrEmpty(item))
                {
                    // int itemid = Convert.ToInt32(item);
                    QuoteDetail qd = _Context.QuoteDetail.GetSingle(e => e.QuoteID == quoteid && e.ItemID == item);

                    _Context.QuoteDetail.Delete(qd);
                    _Context.Quote.SaveChanges();
                    lstItemids.Clear();
                    lstItemids.Add(item);
                    DWChangesStatusToNew(lstItemids);
                }
                itemsCount = _Context.QuoteDetail.GetAll(e => e.QuoteID == quoteid && e.DWSelectionID == (int)DecisionWhizardStatusEnum.Yes).ToList().Sum(e => e.Quantity);
                itemsprice = _Context.QuoteDetail.GetAll(e => e.QuoteID == quoteid && e.DWSelectionID == (int)DecisionWhizardStatusEnum.Yes).ToList().Sum(e => e.Quantity * e.Item.Price);


                break;
            }
            }
            List <string> lstScountPrice = new List <string>();

            lstScountPrice.Add(itemsCount.ToString());
            lstScountPrice.Add(itemsprice.ToString());
            ItemListViewService lstviewsvc = new ItemListViewService();

            if (currentQuote != null)
            {
                lstviewsvc.UserVM = UserVM;
                lstviewsvc.UpdatedDateTime(quoteid);
            }
            return(lstScountPrice);
        }