Esempio n. 1
0
        public async Task <bool> checkIfStockAvailable(Order_itemModel order_itemModel)
        {
            bool isStockAvailable = false;
            var  itemFound        = (await Bl.BlItem.searchItemAsync(new Item {
                Ref = order_itemModel.TxtItem_ref
            }, ESearchOption.AND)).FirstOrDefault();

            if (itemFound != null && itemFound.Stock >= order_itemModel.Order_Item.Quantity - Utility.intTryParse(order_itemModel.TxtOldQuantity))
            {
                isStockAvailable = true;
            }

            return(isStockAvailable);
        }
Esempio n. 2
0
        private async Task createNewQuote()
        {
            Singleton.getDialogueBox().showSearch(ConfigurationManager.AppSettings["create_message"]);

            List <Order_itemModel> order_itemModelList = new List <Order_itemModel>();
            OrderModel             quote = (OrderModel)_main.ModelCreator.createModel(QOBDModels.Enums.EModel.ORDER);

            quote.AddressList = Singleton.getCart().ClientModel.AddressList;
            quote.CLientModel = Singleton.getCart().ClientModel;
            quote.AgentModel  = new AgentModel {
                Agent = Bl.BlSecurity.GetAuthenticatedUser()
            };
            quote.TxtDate   = DateTime.Now.ToString();
            quote.TxtStatus = EOrderStatus.Quote.ToString();

            var currenciesFound = Bl.BlOrder.searchCurrency(new QOBDCommon.Entities.Currency {
                IsDefault = true
            }, ESearchOption.AND);

            if (currenciesFound.Count() > 0)
            {
                quote.CurrencyModel = currenciesFound.Select(x => new CurrencyModel {
                    Currency = x
                }).Single();
                quote.Order.CurrencyId = quote.CurrencyModel.Currency.ID;
            }

            var savedQuoteList = await Bl.BlOrder.InsertOrderAsync(new List <Entity.Order> {
                quote.Order
            });

            if (savedQuoteList.Count > 0)
            {
                foreach (Cart_itemModel cart_itemModel in Singleton.getCart().CartItemList)
                {
                    Order_itemModel order_itemModel = new Order_itemModel
                    {
                        ItemModel = new ItemModel {
                            Item = cart_itemModel.Item
                        },
                        TxtOldQuantity = cart_itemModel.TxtOldQuantity,
                        Order_Item     = new Entity.Order_item
                        {
                            Item_ref       = cart_itemModel.TxtRef,
                            ItemId         = cart_itemModel.Item.ID,
                            Price          = cart_itemModel.Item.Price_sell,
                            Price_purchase = cart_itemModel.Item.Price_purchase,
                            OrderId        = savedQuoteList[0].ID,
                            Quantity       = Utility.intTryParse(cart_itemModel.TxtQuantity)
                        }
                    };
                    order_itemModelList.Add(order_itemModel);
                }

                var savedOrderList = await Bl.BlOrder.InsertOrder_itemAsync(order_itemModelList.Select(x => x.Order_Item).ToList());

                Singleton.getCart().CartItemList.Clear();
                Singleton.getCart().ClientModel.Client = new QOBDCommon.Entities.Client();
                if (savedQuoteList.Count > 0)
                {
                    await Singleton.getDialogueBox().showAsync("Quote ID(" + new OrderModel {
                        Order = savedQuoteList[0]
                    }.TxtID + ") has been created successfully!");
                }

                // lock items to prevent deletion
                QuoteDetailViewModel.lockOrUnlockedOrder_itemItems(order_itemModelList);
            }
            else
            {
                string errorMessage = "Error occurred while creating the quote!";
                Log.error(errorMessage, EErrorFrom.ORDER);
                await Singleton.getDialogueBox().showAsync(errorMessage);
            }

            Singleton.getDialogueBox().IsDialogOpen = false;
        }
Esempio n. 3
0
        private async Task updateQuote()
        {
            Singleton.getDialogueBox().showSearch(ConfigurationManager.AppSettings["update_message"]);

            List <Entity.Order_item> order_itemList = new List <Entity.Order_item>();

            SelectedQuoteModel.TxtDate = DateTime.Now.ToString();

            var savedQuoteList = await Bl.BlOrder.UpdateOrderAsync(new List <Entity.Order> {
                SelectedQuoteModel.Order
            });

            if (savedQuoteList.Count > 0)
            {
                foreach (Cart_itemModel cart_itemModel in Singleton.getCart().CartItemList)
                {
                    // update existing item in the cart
                    Order_itemModel order_itemModelFound = QuoteDetailViewModel.Order_ItemModelList.Where(x => x.TxtItem_ref == cart_itemModel.TxtRef).FirstOrDefault();
                    if (order_itemModelFound != null)
                    {
                        order_itemModelFound.Order_Item.ItemId = cart_itemModel.Item.ID;
                        order_itemModelFound.TxtQuantity       = cart_itemModel.TxtQuantity;
                        order_itemModelFound.TxtPrice          = cart_itemModel.TxtPrice_sell;
                        order_itemModelFound.TxtPrice_purchase = cart_itemModel.TxtPrice_purchase;
                        order_itemList.Add(order_itemModelFound.Order_Item);
                    }

                    // new item in the cart
                    else
                    {
                        Order_itemModel newOrder_itemModel = new Order_itemModel();
                        newOrder_itemModel.Order              = savedQuoteList[0];
                        newOrder_itemModel.ItemModel.Item     = cart_itemModel.Item;
                        newOrder_itemModel.TxtOldQuantity     = cart_itemModel.TxtOldQuantity;
                        newOrder_itemModel.TxtItem_ref        = cart_itemModel.TxtRef;
                        newOrder_itemModel.Order_Item.ItemId  = cart_itemModel.Item.ID;
                        newOrder_itemModel.TxtPrice           = cart_itemModel.TxtPrice_sell;
                        newOrder_itemModel.TxtPrice_purchase  = cart_itemModel.TxtPrice_purchase;
                        newOrder_itemModel.Order_Item.OrderId = savedQuoteList[0].ID;
                        newOrder_itemModel.TxtQuantity        = cart_itemModel.TxtQuantity;
                        order_itemList.Add(newOrder_itemModel.Order_Item);
                    }
                }

                // get unselected item from the list for deletion
                var order_itemListToDelete = QuoteDetailViewModel.Order_ItemModelList.Where(x => Singleton.getCart().CartItemList.Where(y => y.TxtRef == x.TxtItem_ref).Count() == 0).ToList();

                // update the quote items
                await Bl.BlOrder.UpdateOrder_itemAsync(order_itemList.Where(x => x.ID != 0).ToList());

                // add new items to the quote
                var addedItemList = await Bl.BlOrder.InsertOrder_itemAsync(order_itemList.Where(x => x.ID == 0).ToList());

                // lock items to prevent deletion
                if (addedItemList.Count > 0)
                {
                    QuoteDetailViewModel.lockOrUnlockedOrder_itemItems(order_itemList.Where(x => x.ID == 0).Select(x => new Order_itemModel {
                        Order_Item = x
                    }).ToList());
                }

                // deleting unchecked items from the quote
                var order_itemDeletionFaildList = await Bl.BlOrder.DeleteOrder_itemAsync(order_itemListToDelete.Select(x => x.Order_Item).ToList());

                // unlock items to allow deletion
                if (order_itemDeletionFaildList.Count == 0)
                {
                    QuoteDetailViewModel.lockOrUnlockedOrder_itemItems(order_itemListToDelete, isLocked: false);
                }

                foreach (var order_itemModelToDelete in order_itemListToDelete)
                {
                    QuoteDetailViewModel.Order_ItemModelList.Remove(order_itemModelToDelete);
                }

                Singleton.getCart().CartItemList.Clear();
                Singleton.getCart().ClientModel.Client = new QOBDCommon.Entities.Client();
                if (savedQuoteList.Count > 0)
                {
                    await Singleton.getDialogueBox().showAsync("Quote ID(" + new OrderModel {
                        Order = savedQuoteList[0]
                    }.TxtID + ") has been updated successfully!");
                }
            }
            else
            {
                string errorMessage = "Error occurred while updating the quote ID[" + SelectedQuoteModel.TxtID + "]!";
                Log.error(errorMessage, EErrorFrom.ORDER);
                await Singleton.getDialogueBox().showAsync(errorMessage);
            }

            Singleton.getDialogueBox().IsDialogOpen = false;
        }