Example #1
0
        public ActionResult ProcessSale(ABCSalePoco model)
        {
            try
            {
                ModelState.Clear();

                if (model.CustomerId == 0)
                {
                    ModelState.AddModelError("CustomerId", "Customer is Required");
                }
                if (model.SaleItems.Count() == 0)
                {
                    ModelState.AddModelError("SaleItem", "Items must be added to sale");
                }
                if (string.IsNullOrEmpty(model.SalePerson))
                {
                    ModelState.AddModelError("SalesPerson", "Sales Person Name Required");
                }

                foreach (var item in model.SaleItems)
                {
                    if (item.ItemCode != null)
                    {
                        if (_itemsService.CheckInventoryAmount(item.ItemCode) == 0 || _itemsService.CheckInventoryAmount(item.ItemCode) < item.Quantity)
                        {
                            ModelState.AddModelError("Quantity", "Quantity must be less than stock");
                        }
                        if (item.Quantity == 0 || item.Quantity < 0)
                        {
                            ModelState.AddModelError("Quantity", "Quantity must be a Positive Value");
                        }
                    }
                }

                if (ModelState.ErrorCount == 0)
                {
                    var saleNumber = _salesService.ProcessSale(model);

                    if (saleNumber != 0)
                    {
                        TempData["Success"] = $"Sale {saleNumber} Create Successful";

                        model = new ABCSalePoco();
                        model.SaleItems.Add(new SaleItem());
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("CreateSale", "Create Item Failed");
            }

            var customers = _customersService.GetCustomers();

            ViewBag.Customers = GetCustomers(customers);
            ViewBag.Items     = GetAvailableItems();

            return(View(model));
        }
Example #2
0
        // GET: Sale/Create
        public ActionResult ProcessSale()
        {
            var customers = _customersService.GetCustomers();

            ViewBag.Customers = GetCustomers(customers);
            ViewBag.Items     = GetAvailableItems();

            var model = new ABCSalePoco();

            model.SaleItems.Add(new SaleItem());

            return(View(model));
        }
Example #3
0
        public int ProcessSale(ABCSalePoco sale)
        {
            ABCSale newSale = new ABCSale();

            newSale.CustomerId = sale.CustomerId;
            newSale.SaleDate   = DateTime.Now;
            newSale.SalePerson = sale.SalePerson;
            newSale.SaleItems  = sale.SaleItems.Where(i => !string.IsNullOrEmpty(i.ItemCode)).ToList();

            foreach (var item in newSale.SaleItems)
            {
                if (string.IsNullOrEmpty(item.ItemCode))
                {
                    newSale.SubTotal  = 0;
                    newSale.SubTotal += (item.UnitPrice * item.Quantity.Value);
                }
            }

            newSale.Gst       = (newSale.SubTotal * (decimal)0.05);
            newSale.SaleTotal = (newSale.SubTotal + newSale.Gst);

            return(_SalesManager.ProcessSale(newSale));
        }