public ActionResult UpdateStocks(int ID, long Amount, string StockType)
        {
            M_Stocks stocks = new M_Stocks();
            M_Item   item   = new M_Item();

            item = (from c in db.M_Item where c.ID == ID select c).FirstOrDefault();

            if (StockType == "Deduct" && Amount > item.CurrentStock)
            {
                return(Json(new { msg = "Failed" }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                switch (StockType)
                {
                case "Add":
                    stocks.ItemID     = ID;
                    stocks.StockQty   = Amount;
                    stocks.UpdateDate = DateTime.Now;
                    stocks.UpdateID   = user.UserName;
                    stocks.StockType  = "In";
                    stocks.Price      = item.Price;
                    db.M_Stocks.Add(stocks);



                    item.CurrentStock   += Amount;
                    db.Entry(item).State = EntityState.Modified;
                    db.SaveChanges();


                    break;

                case "Deduct":
                    stocks.ItemID     = ID;
                    stocks.StockQty   = Amount;
                    stocks.UpdateDate = DateTime.Now;
                    stocks.UpdateID   = user.UserName;
                    stocks.Price      = item.Price;
                    stocks.StockType  = "Out";
                    db.M_Stocks.Add(stocks);


                    item.CurrentStock   -= Amount;
                    db.Entry(item).State = EntityState.Modified;
                    db.SaveChanges();

                    break;
                }



                return(Json(new { msg = "Success" }, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult CreateItem(M_Item data)
        {
            try
            {
                data.CreateID     = user.CreateID;
                data.CreateDate   = DateTime.Now;
                data.UpdateID     = user.CreateID;
                data.UpdateDate   = DateTime.Now;
                data.IsDeleted    = false;
                data.CurrentStock = 0;
                M_Item checker = (from c in db.M_Item
                                  where c.ItemName == data.ItemName &&
                                  c.ItemCategory == data.ItemCategory &&
                                  c.Price == data.Price &&
                                  c.RetailPrice == data.RetailPrice &&
                                  c.IsDeleted == false
                                  select c).FirstOrDefault();
                if (checker == null)
                {
                    db.M_Item.Add(data);
                    db.SaveChanges();

                    M_Stocks initialStock = new M_Stocks();
                    initialStock.ItemID     = (from c in db.M_Item orderby c.ID descending select c.ID).FirstOrDefault();
                    initialStock.StockQty   = 0;
                    initialStock.StockType  = "Initial";
                    initialStock.UpdateID   = user.UserName;
                    initialStock.UpdateDate = DateTime.Now;
                    db.M_Stocks.Add(initialStock);
                    db.SaveChanges();

                    long CurrentID = (from c in db.M_Item orderby c.ID select c.ID).FirstOrDefault();

                    return(Json(new { msg = "Success", itemID = CurrentID }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new { msg = "Failed" }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception err)
            {
                return(Json(new { msg = err.Message }, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult GetReceipt(List <POS_Receipt> receiptlist)
        {
            string ReceiptRefNo = "REFNO" + DateTime.Now.ToString("yyyyMMddHHmmss");

            foreach (POS_Receipt s in receiptlist)
            {
                s.ReceiptRefNo = ReceiptRefNo;
                s.CreateID     = "POS";
                s.CreateDate   = DateTime.Now;
                db.POS_Receipt.Add(s);
                db.SaveChanges();
            }

            List <POS_Receipt> ItemList = new List <POS_Receipt>();

            ItemList = receiptlist.Where(x => x.Type == "Item").ToList();
            foreach (POS_Receipt s in ItemList)
            {
                M_Item item = new M_Item();
                item = (from c in db.M_Item where c.ID == s.ItemID select c).FirstOrDefault();
                item.CurrentStock   -= s.Amount;
                db.Entry(item).State = EntityState.Modified;

                M_Stocks stock = new M_Stocks();
                stock.ItemID     = s.ID;
                stock.StockType  = "Out";
                stock.StockQty   = s.Amount;
                stock.Remarks    = string.Empty;
                stock.Price      = item.Price;
                stock.UpdateID   = "POS";
                stock.UpdateDate = DateTime.Now;
                db.M_Stocks.Add(stock);
                db.SaveChanges();
            }

            return(Json(new { }, JsonRequestBehavior.AllowGet));
        }