public PurchaseOrderDetail PurchaseOrderDetail_GetByPoIdStockId(int purchaseOrderID, int stockID)
 {
     using (eToolContext context = new eToolContext())
     {
         return context.PurchaseOrderDetails.Where(POD => POD.PurchaseOrderID == purchaseOrderID && POD.StockItemID == stockID).SingleOrDefault();
     }
 }
 public List<StockItem> Purchase(String vendorID)
 {
     using (eToolContext context = new eToolContext())
     {
         return context.StockItems.Where(anItem => anItem.VendorID == anItem.VendorID).ToList();
     }
 }
 public List<Employee> Employee_List()
 {
     using (eToolContext context = new eToolContext())
     {
         var results = from item in context.Employees
                       orderby item.LastName
                       select item;
         return results.ToList();
     }
 }
 public List<Vendor> Vendor_List()
 {
     using (eToolContext context = new eToolContext())
     {
         var results = from item in context.Vendors
                       orderby item.VendorName
                       select item;
         return results.ToList();
     }
 }
 public List<OutstandingPurchaseOrderDetail> OutstandingPurchaseOrderDetail_List(int purchaseOrderID)
 {
     using (eToolContext context = new eToolContext())
     {
         var results = from POD in context.PurchaseOrderDetails.ToList()
                       where POD.PurchaseOrderID == purchaseOrderID
                       select new OutstandingPurchaseOrderDetail
                       {
                           StockItemID = POD.StockItemID,
                           Description = POD.StockItem.Description,
                           Quantity = POD.Quantity
                       };
         return results.ToList();
     }
 }
 public List<OutstandingPurchaseOrder> OutstandingPurchaseOrder_List()
 {
     using (eToolContext context = new eToolContext())
     {
         var results = from PO in context.PurchaseOrders.ToList()
                       orderby PO.PurchaseOrderID
                       where PO.Closed != true && PO.OrderDate != null
                       select new OutstandingPurchaseOrder
                       {
                           PurchaseOrderID = PO.PurchaseOrderID,
                           OrderDate = PO.OrderDate,
                           Vendor = PO.Vendor.VendorName,
                           ContactPhone = PO.Vendor.Phone
                       };
         return results.ToList();
     }
 }
 public OutstandingPurchaseOrder OutstandingPurchaseOrder_GetByID(int purchaseOrderID)
 {
     using (eToolContext context = new eToolContext())
     {
         var results = from PO in context.PurchaseOrders
                       orderby PO.PurchaseOrderID
                       where PO.PurchaseOrderID == purchaseOrderID
                       select new OutstandingPurchaseOrder
                       {
                           PurchaseOrderID = PO.PurchaseOrderID,
                           OrderDate = PO.OrderDate,
                           Vendor = PO.Vendor.VendorName,
                           ContactPhone = PO.Vendor.Phone
                       };
         return results.SingleOrDefault();
     }
 }
        //[DataObjectMethod(DataObjectMethodType.Insert,false)] it is only for view, e.g: listview....
        public void AddToCart(string currentUserName, int stockItemID, int quantity)
        {
            using (eToolContext context = new eToolContext())
                {
                    var currentCustomer = context.OnlineCustomers.FirstOrDefault( x => x.UserName == currentUserName);
                    if (currentCustomer == null)
                    {
                        OnlineCustomer newCustomer = new OnlineCustomer();
                        newCustomer.UserName = currentUserName;
                        newCustomer.CreatedOn = DateTime.Now;
                        // Or
                        //OnlineCustomer currentCustomer = new OnlineCustomer()
                        //{
                        //    UserName = user.Identity.Name,
                        //    CreatedOn = DateTime.Now
                        //};
                        currentCustomer = context.OnlineCustomers.Add(newCustomer);
                        context.SaveChanges();
                    }

                    var currentShoppingCart = context.ShoppingCarts.FirstOrDefault( x => x.OnlineCustomer.UserName == currentUserName);
                    if (currentShoppingCart == null)
                    {
                        ShoppingCart newShoppingCart = new ShoppingCart()
                        {
                            OnlineCustomerID = currentCustomer.OnlineCustomerID,
                            CreatedOn = DateTime.Now
                        };

                        currentShoppingCart = context.ShoppingCarts.Add(newShoppingCart);
                        context.SaveChanges();
                    }

                    ShoppingCartItem currentCartItem = new ShoppingCartItem()
                    {
                        ShoppingCartID = currentShoppingCart.ShoppingCartID,
                        StockItemID = stockItemID,
                        Quantity = quantity
                    };

                    foreach (ShoppingCartItem cartItem in context.ShoppingCartItems)
                    {
                        if(cartItem.ShoppingCartID == currentShoppingCart.ShoppingCartID
                            && cartItem.StockItemID == stockItemID)
                        {
                            context.Entry<ShoppingCartItem>(context.ShoppingCartItems.Attach(currentCartItem)).State
                                = System.Data.Entity.EntityState.Modified;
                            context.SaveChanges();
                        }
                        else if(cartItem.ShoppingCartID == currentShoppingCart.ShoppingCartID
                            && cartItem.StockItemID != stockItemID)
                        {

                            //context.ShoppingCartItems.Add(currentCartItem);
                            currentCartItem = context.ShoppingCartItems.Add(currentCartItem);
                        }

                    }

                    //??? should be another way to update
                    var currentStockItem = from skItem in context.StockItems
                                           where skItem.StockItemID == stockItemID
                                           select new StockItem
                                           {
                                               StockItemID = skItem.StockItemID,
                                               Description = skItem.Description,
                                               SellingPrice = skItem.PurchasePrice,
                                               PurchasePrice = skItem.PurchasePrice,
                                               QuantityOnHand = skItem.QuantityOnHand - quantity,
                                               QuantityOnOrder = skItem.QuantityOnOrder,//??? is this for customer or for vendor
                                               ReOrderLevel = skItem.ReOrderLevel,
                                               Discontinued = skItem.Discontinued,
                                               VendorID = skItem.VendorID,
                                               VendorStockNumber = skItem.VendorStockNumber,
                                               CategoryID = skItem.CategoryID
                                           };

                    context.Entry<StockItem>(context.StockItems.Attach((StockItem)currentStockItem)).State
                                = System.Data.Entity.EntityState.Modified;

                    context.SaveChanges();

                }
        }
 public void StockItem_Update(StockItem selectedStockItem)
 {
     using (eToolContext context = new eToolContext())
         {
             context.Entry<StockItem>(context.StockItems.Attach(selectedStockItem)).State
                 = System.Data.Entity.EntityState.Modified;
             context.SaveChanges();
         }
 }
 public void ShoppingCartItem_Add(ShoppingCartItem currentShoppingCartItem)
 {
     using (eToolContext context = new eToolContext())
         {
             context.ShoppingCartItems.Add(currentShoppingCartItem);
             context.SaveChanges();
         }
 }
        public List<CategoryProduct> GetProductByCategory(int CategoryID)
        {
            using (eToolContext context = new eToolContext())
            {
                var results = from pd in context.StockItems
                              where pd.Category.CategoryID == CategoryID
                              orderby pd.Description
                              select new CategoryProduct()
                              {
                                  CategoryID = CategoryID,
                                  StockItemID = pd.StockItemID,
                                  ProdcutCategoryDes = pd.Category.Description,
                                  ProductDes = pd.Description,
                                  SellingPrice = pd.SellingPrice,
                                  QOH = pd.QuantityOnHand,

                              };

                return results.ToList();
            }
        }
        public List<AllCategories> GetCategories()
        {
            using (eToolContext context = new eToolContext())
            {
                var results = from cate in context.Categories
                              orderby cate.Description
                              select new AllCategories()
                              {
                                  CategoryID = cate.CategoryID,
                                  CategoryDes = cate.Description,
                                  ProductCount = cate.StockItems.Count

                              };

                return results.ToList();
            }
        }
 public void PurchaseOrder_Update(PurchaseOrder item)
 {
     using (eToolContext context = new eToolContext())
     {
         context.Entry<PurchaseOrder>(context.PurchaseOrders.Attach(item)).State = System.Data.Entity.EntityState.Modified;
         context.SaveChanges();
     }
 }
 public PurchaseOrder PurchaseOrder_GetByID(int purchaseOrderID)
 {
     using (eToolContext context = new eToolContext())
     {
         return context.PurchaseOrders.Where(PO => PO.PurchaseOrderID == purchaseOrderID).SingleOrDefault();
     }
 }
 public int ReceivedOrder_Add(ReceiveOrder item)
 {
     using (eToolContext context = new eToolContext())
     {
         ReceiveOrder added = null;
         added = context.ReceiveOrders.Add(item);
         context.SaveChanges();
         return added.ReceiveOrderID;
     }
 }
 public void ReturnOrderDetails_Add(ReturnedOrderDetail item)
 {
     using (eToolContext context = new eToolContext())
     {
         ReturnedOrderDetail added = null;
         added = context.ReturnedOrderDetails.Add(item);
         context.SaveChanges();
         //return added.ReturnedOrderDetailID;
     }
 }
 public StockItem StockItemByID(int ItemID)
 {
     using (eToolContext context = new eToolContext())
     {
         return context.StockItems.Where(anItem => anItem.StockItemID == ItemID).SingleOrDefault();
     }
 }