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();
                        }
                    }
                }
            }
        }
Exemple #2
0
        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();
            }
        }
Exemple #3
0
        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();
            }
        }
Exemple #4
0
        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();
            }
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
                }
            }
        }
Exemple #7
0
        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);
        }