private void btnPrint_Click(object sender, EventArgs e)
        {
            try
            {
                Anu_Order order = new Anu_Order();
                order.Anu_Order_Id        = lblBillNo.Text;
                order.Anu_Order_OrderDate = Convert.ToDateTime(lblBillDate.Text);

                var  uurn      = "";
                long unique    = 1;
                var  MaxUNIQUE = (from a in _context.Anu_Orders select a).AsEnumerable().Max(p => p.Anu_Order_URNNo);
                if (MaxUNIQUE != 0)
                {
                    unique = Convert.ToInt64(MaxUNIQUE) + 1;
                }
                uurn = unique.ToString("00000");
                order.Anu_Order_URNNo       = Convert.ToInt32(uurn);
                order.Anu_Order_TotalQty    = TotalQty;
                order.Anu_Order_Status      = Status.Paid;
                order.Anu_Order_TotalAmount = Total;
                order.Anu_Order_Mode        = Mode.Cash;
                order.Anu_Order_IsActive    = true;
                order.Anu_Order_Createdby   = SessionMgr.UserId;
                order.Anu_Order_CreatedDate = DateTime.Now;
                _context.Anu_Orders.Add(order);
                _context.SaveChanges();


                var cart = _context.Anu_Carts.ToList();

                foreach (var item in cart)
                {
                    var odid = "";

                    long urn    = 1;
                    var  MaxURN = (from a in _context.Anu_Order_Details select a).AsEnumerable().Max(p => p.Anu_Order_Detail_Id.Split('-')[1]);
                    if (MaxURN != null)
                    {
                        urn = Convert.ToInt64(MaxURN) + 1;
                    }
                    odid = "AGPODD/" + DateTime.Now.Month + "/" + DateTime.Now.Year + "-" + urn.ToString("0000");



                    Anu_Order_Detail orderdetail = new Anu_Order_Detail();
                    orderdetail.Anu_Order_Detail_Id              = odid;
                    orderdetail.Anu_Order_Id                     = order.Anu_Order_Id;
                    orderdetail.Anu_Order_Detail_Discount        = Convert.ToDecimal(lblDiscount.Text);
                    orderdetail.Anu_Order_Detail_Qty             = item.Anu_cart_Qty;
                    orderdetail.Anu_Order_Detail_Rate            = item.Anu_cart_Rate;
                    orderdetail.Anu_Product_Id                   = item.Anu_Product_Id;
                    orderdetail.Anu_Order_Detail_Type            = item.Anu_cart_Type;
                    orderdetail.Anu_Order_Detail_Subtotal        = SubTotal;
                    orderdetail.Anu_Order_Detail_ReceivedAmount  = Convert.ToDecimal(txtReceived.Text.Trim());
                    orderdetail.Anu_Order_Detail_RemainingAmount = Convert.ToDecimal(lblRemain.Text);
                    _context.Anu_Order_Details.Add(orderdetail);
                    _context.SaveChanges();


                    var stock = _context.Anu_Stocks.Include(a => a.stdetail).Where(a => a.Anu_Product_Id.Contains(item.Anu_Product_Id)).SingleOrDefault();
                    stock.Anu_Stock_Qty = stock.Anu_Stock_Qty - Convert.ToDecimal(item.Anu_cart_Qty);
                    _context.SaveChanges();


                    Anu_Cart crt = _context.Anu_Carts.Find(item.Anu_Cart_Id);
                    _context.Anu_Carts.Remove(crt);
                    _context.SaveChanges();
                }

                prdCombo.SelectedIndex  = 0;
                txtCat.Text             = "";
                txtQty.Text             = "";
                txtRate.Text            = "";
                lblStock.Text           = "";
                lblGSt.Text             = "";
                TypeCombo.SelectedIndex = 0;
                ////PrintReceipt(lblBillNo.Text);
                ////printTest();
                //Printdoc();

                var orderdetails = from a in _context.Anu_Order_Details.Include(aaa => aaa.order).Include(ad => ad.product)
                                   where (a.Anu_Order_Id.Contains(lblBillNo.Text))
                                   select a;

                decimal TotalAmt = _context.Anu_Orders.Where(a => a.Anu_Order_Id == lblBillNo.Text).Select(a => a.Anu_Order_TotalAmount).SingleOrDefault();

                PrinterUtility.EscPosEpsonCommands.EscPosEpson obj = new PrinterUtility.EscPosEpsonCommands.EscPosEpson();
                var BytesValue = GetLogo(@"C:\Banner.png");

                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Separator());
                BytesValue = PrintExtensions.AddBytes(BytesValue, Encoding.ASCII.GetBytes("Cash Bill\n"));
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Alignment.Left());
                BytesValue = PrintExtensions.AddBytes(BytesValue, Encoding.ASCII.GetBytes("Invoice no.'" + lblBillNo.Text));
                BytesValue = PrintExtensions.AddBytes(BytesValue, Encoding.ASCII.GetBytes("Date.'" + orderdetails.FirstOrDefault().order.Anu_Order_OrderDate));
                BytesValue = PrintExtensions.AddBytes(BytesValue, Encoding.ASCII.GetBytes("Item             Qty             Amount"));
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Separator());
                //BytesValue = PrintExtensions.AddBytes(BytesValue, string.Format("{0,-40},{1,6},{2,9},{3,9:N2}\n", "item 1", 12, 11, 144.00));
                //BytesValue = PrintExtensions.AddBytes(BytesValue, string.Format("{0,-40},{1,6},{2,9},{3,9:N2}\n", "item 1", 12, 11, 144.00));

                foreach (var item in orderdetails)
                {
                    BytesValue = PrintExtensions.AddBytes(BytesValue, string.Format("{0,-40}{1,6}{2,9}{3,9:N2}\n", item.product.Anu_Product_Name, item.Anu_Order_Detail_Qty, item.Anu_Order_Detail_Rate));
                }
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Alignment.Right());
                BytesValue = PrintExtensions.AddBytes(BytesValue, Encoding.ASCII.GetBytes("Total"));
                BytesValue = PrintExtensions.AddBytes(BytesValue, Encoding.ASCII.GetBytes(TotalAmt.ToString()));
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Separator());
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Lf());
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Alignment.Left());
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Alignment.Center());
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.BarCode.Code128("12345"));
                BytesValue = PrintExtensions.AddBytes(BytesValue, "-------------------Thanking you------------------\n");
                BytesValue = PrintExtensions.AddBytes(BytesValue, obj.Alignment.Left());
                BytesValue = PrintExtensions.AddBytes(BytesValue, Cutpage());
                BytesValue = PrintExtensions.AddBytes(BytesValue, Anugraha.Properties.Settings.Default.PrinterName);

                Init();

                //printTest();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                var IsHave = _context.Anu_Carts.Where(a => a.Anu_Product_Id.Contains(ProductId)).SingleOrDefault();
                if (IsHave != null)
                {
                    IsHave.Anu_cart_Qty  = (Convert.ToInt32(IsHave.Anu_cart_Qty) + Convert.ToInt32(Qty)).ToString();
                    IsHave.Anu_cart_Rate = IsHave.Anu_cart_Rate + Amount;
                    _context.SaveChanges();
                }
                else
                {
                    Anu_Cart cart = new Anu_Cart();
                    cart.Anu_Product_Id = ProductId;
                    cart.Anu_cart_Qty   = Qty.ToString();
                    cart.Anu_cart_Rate  = Amount;
                    if (TypeCombo.SelectedValue.ToString() == "0")
                    {
                        cart.Anu_cart_Type = Model.Type.SP;
                    }
                    else if (TypeCombo.SelectedValue.ToString() == "1")
                    {
                        cart.Anu_cart_Type = Model.Type.GM;
                    }
                    else if (TypeCombo.SelectedValue.ToString() == "2")
                    {
                        cart.Anu_cart_Type = Model.Type.KG;
                    }
                    else
                    {
                        cart.Anu_cart_Type = Model.Type.LR;
                    }
                    _context.Anu_Carts.Add(cart);
                    _context.SaveChanges();
                }
                var ct = _context.Anu_Carts.ToList();

                var grd = from a in _context.Anu_Carts.Include(s => s.product)
                          select new
                {
                    Id       = a.Anu_Cart_Id,
                    Product  = a.product.Anu_Product_Name,
                    Quantity = a.Anu_cart_Qty + " " + a.Anu_cart_Type.ToString(),
                    Rate     = a.Anu_cart_Rate
                };
                cartGrid.DataSource = grd.OrderBy(a => a.Product).ToList();

                cartGrid.Columns[0].Visible = false;


                var total = _context.Anu_Carts.Sum(a => a.Anu_cart_Rate);
                SubTotal = Convert.ToDecimal(total);
                Total    = Convert.ToDecimal(total);
                //lblSub.Text = SubTotal.ToString();
                lblGSt.Text             = "0.00";
                lblDiscount.Text        = "0.00";
                lblRoundOff.Text        = "0.00";
                GrandTotal.Text         = Total.ToString();
                ProductId               = "";
                prdCombo.SelectedIndex  = 0;
                TypeCombo.SelectedIndex = 0;
                txtCat.Text             = "";
                txtRate.Text            = "";
                txtQty.Text             = "";
                lblStock.Text           = "";
                prdCombo.Focus();
                TotalQty = _context.Anu_Carts.Count();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }