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)); }
// 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)); }
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)); }