public static void SaveActivatedProducts(Custodian custodian) { using (FreeMarketEntities db = new FreeMarketEntities()) { foreach (Product product in custodian.ActivatedProducts.Products) { if (product.CustodianActivated) { ProductCustodian productCustodian = db.ProductCustodians .Where(c => c.ProductNumber == product.ProductNumber && c.SupplierNumber == product.SupplierNumber && c.CustodianNumber == custodian.CustodianNumber) .FirstOrDefault(); if (productCustodian == null) { productCustodian = new ProductCustodian { AmountLastIncreasedBySupplier = null, CustodianName = custodian.CustodianName, CustodianNumber = custodian.CustodianNumber, DateLastIncreasedBySupplier = null, ProductNumber = product.ProductNumber, SupplierNumber = product.SupplierNumber, QuantityOnHand = 0, StockReservedForOrders = 0, Active = true }; db.ProductCustodians.Add(productCustodian); db.SaveChanges(); } else { productCustodian.Active = true; db.Entry(productCustodian).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } } else if (!product.CustodianActivated) { ProductCustodian productCustodian = db.ProductCustodians .Where(c => c.ProductNumber == product.ProductNumber && c.SupplierNumber == product.SupplierNumber && c.CustodianNumber == custodian.CustodianNumber) .FirstOrDefault(); if (productCustodian == null) { } else { productCustodian.Active = false; db.Entry(productCustodian).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } } } } }
public ViewProductViewModel(int productNumber, int supplierNumber, int quantityRequested, int orderNumber = 0) { // Validate if (productNumber == 0 || supplierNumber == 0 || quantityRequested < 1) { InitializeDefault(); } using (FreeMarketEntities db = new FreeMarketEntities()) { decimal minValue = db.ProductSuppliers .Where(c => c.ProductNumber == productNumber && c.SupplierNumber == supplierNumber) .Min(c => c.PricePerUnit); // Validate ProductSupplier productSupplierTemp = db.ProductSuppliers .Where(c => c.ProductNumber == productNumber && c.SupplierNumber == supplierNumber && c.PricePerUnit == minValue) .FirstOrDefault(); if (productSupplierTemp == null) { InitializeDefault(); return; } Quantity = quantityRequested; ProductNumber = productNumber; SupplierNumber = supplierNumber; ProductCustodian custodian = ShoppingCart.GetStockAvailable(productNumber, supplierNumber, quantityRequested, productSupplierTemp.SizeType); if (custodian != null) { CannotDeliver = false; CustodianQuantityOnHand = custodian.QuantityOnHand; CustodianNumber = custodian.CustodianNumber; } else { CannotDeliver = true; CustodianQuantityOnHand = 0; CustodianNumber = 0; } SetInstances(productNumber, supplierNumber); ReviewPageSize = 4; ProductSizes = db.GetProductSizes(productNumber, supplierNumber) .Select(c => new SelectListItem { Text = c.Description, Value = c.SizeId.ToString(), Selected = productSupplierTemp.SizeType == c.SizeId ? true : false }) .ToList(); } }
public static void RemoveStockFromCustodian(int orderId, int productNumber, int supplierNumber, int custodianNumber, int quantity) { using (FreeMarketEntities db = new FreeMarketEntities()) { ProductCustodian custodian = db.ProductCustodians .Where(c => c.CustodianNumber == custodianNumber && c.ProductNumber == productNumber && c.SupplierNumber == supplierNumber) .FirstOrDefault(); custodian.QuantityOnHand -= quantity; db.Entry(custodian).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } }
public static void AddStock(int productNumber, int supplierNumber, int custodianNumber, int quantity) { using (FreeMarketEntities db = new FreeMarketEntities()) { ProductCustodian custodian = db.ProductCustodians.Where(c => c.CustodianNumber == custodianNumber && c.ProductNumber == productNumber && c.SupplierNumber == supplierNumber) .FirstOrDefault(); custodian.QuantityOnHand += quantity; custodian.DateLastIncreasedBySupplier = DateTime.Now; custodian.AmountLastIncreasedBySupplier = quantity; db.Entry(custodian).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } }
public static List <ProductCustodian> GetAllProductCustodians() { using (FreeMarketEntities db = new FreeMarketEntities()) { List <ProductCustodian> custodians = new List <ProductCustodian>(); List <GetAllProductCustodians_Result> result = db.GetAllProductCustodians().ToList(); foreach (GetAllProductCustodians_Result item in result) { ProductCustodian productCustodianDB = db.ProductCustodians .FirstOrDefault(c => c.ProductNumber == item.ProductNumber && c.SupplierNumber == item.SupplierNumber); if (productCustodianDB == null) { return(new List <ProductCustodian>()); } bool inStock = productCustodianDB.QuantityOnHand > 0 ? true : false; Product product = db.Products.Find(item.ProductNumber); product.GetProductImages(product); Supplier supplier = db.Suppliers.Find(item.SupplierNumber); custodians.Add(new ProductCustodian { ProductName = product.Description, ProductNumber = item.ProductNumber, SupplierNumber = item.SupplierNumber, MainImageNumber = product.MainImageNumber, SupplierName = product.SupplierName, InStock = inStock }); } return(custodians); } }
public static void CreateNewProduct(Product product) { try { product.DateAdded = DateTime.Now; product.DateModified = DateTime.Now; product.DepartmentNumber = int.Parse(product.SelectedDepartment); } catch { return; } using (FreeMarketEntities db = new FreeMarketEntities()) { db.Products.Add(product); db.SaveChanges(); foreach (ProductSize item in product.SizeVariations) { if (item.PricePerUnit > 0 && item.Activated == true) { ProductSupplier productSupplierDb = new ProductSupplier() { ProductNumber = product.ProductNumber, SupplierNumber = int.Parse(product.SelectedSupplier), PricePerUnit = item.PricePerUnit, SpecialPricePerUnit = 0, RetailPricePerUnit = 0, SizeType = item.SizeId }; db.ProductSuppliers.Add(productSupplierDb); db.SaveChanges(); } } Custodian custodian = db.Custodians.Find(product.SelectedCustodianNumber); if (custodian == null) { return; } try { foreach (ProductSize item in product.SizeVariations) { if (item.PricePerUnit > 0 && item.Activated == true) { ProductCustodian productCustodianDb = new ProductCustodian() { AmountLastIncreasedBySupplier = null, CustodianNumber = product.SelectedCustodianNumber, DateLastIncreasedBySupplier = null, ProductNumber = product.ProductNumber, SupplierNumber = int.Parse(product.SelectedSupplier), QuantityOnHand = 0, StockReservedForOrders = 0, SizeType = item.SizeId }; db.ProductCustodians.Add(productCustodianDb); db.SaveChanges(); } } } catch (Exception e) { ExceptionLogging.LogException(e); } } }
public static FreeMarketObject CreateNewCashOrder(CashOrderViewModel model) { FreeMarketObject result = new FreeMarketObject { Result = FreeMarketResult.NoResult, Argument = null, Message = null }; using (FreeMarketEntities db = new FreeMarketEntities()) { CashCustomer customer = db.CashCustomers.Find(model.Order.CashCustomerId); if (customer == null) { customer = new CashCustomer { DeliveryAddress = model.Order.CustomerDeliveryAddress, Email = model.Order.CustomerEmail, Name = model.Order.CustomerName, PhoneNumber = model.Order.CustomerPhone }; db.CashCustomers.Add(customer); db.SaveChanges(); } else { customer.DeliveryAddress = model.Order.CustomerDeliveryAddress; customer.Email = model.Order.CustomerEmail; customer.Name = model.Order.CustomerName; customer.PhoneNumber = model.Order.CustomerPhone; db.Entry(customer).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } CashOrder order = new CashOrder { CashCustomerId = customer.Id, DatePlaced = DateTime.Now, Status = "Completed", Total = 0 }; db.CashOrders.Add(order); db.SaveChanges(); foreach (Product p in model.Products.Products) { if (p.CashQuantity > 0) { decimal price = decimal.Parse(p.SelectedPrice); CashOrderDetail detail = new CashOrderDetail { CashOrderId = order.OrderId, ProductNumber = p.ProductNumber, SupplierNumber = p.SupplierNumber, Quantity = p.CashQuantity, Price = price, OrderItemTotal = price * p.CashQuantity, CustodianNumber = model.SelectedCustodian }; db.CashOrderDetails.Add(detail); db.SaveChanges(); order.Total += detail.OrderItemTotal; db.Entry(order).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); ProductCustodian custodian = db.ProductCustodians .Where(c => c.CustodianNumber == model.SelectedCustodian && c.ProductNumber == p.ProductNumber && c.SupplierNumber == p.SupplierNumber) .FirstOrDefault(); custodian.QuantityOnHand -= p.CashQuantity; db.Entry(custodian).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } } db.SaveChanges(); if (customer != null && order != null && db.CashOrderDetails.Any(c => c.CashOrderId == order.OrderId)) { result.Result = FreeMarketResult.Success; } else { result.Result = FreeMarketResult.Failure; } } return(result); }