public static void insert(tbl_SaleItem saleItem)
        {
            RMSDBEntities db = DBContext.getInstance();

            db.tbl_SaleItem.Add(saleItem);
            db.SaveChanges();
        }
        public static void performANewSale(List <ItemOrDealSaleModel> saleList, double discount, int totalBill, int remaining, int customerId, bool receipt1, bool receipt2, bool receipt3, int saletype, string customerAddress, int deliveryBoyId)
        {
            RMSDBEntities db   = DBContext.getInstance();
            tbl_Sale      sale = new tbl_Sale();

            sale.Staff_id  = 0;
            sale.Date_Time = DateTime.Now;

            tbl_Customer c = Customer.getById(customerId);

            if (c != null)
            {
                sale.Customer_Id = customerId;
            }

            sale.Amount   = totalBill;
            sale.SaleType = saletype;
            db.tbl_Sale.Add(sale);
            db.SaveChanges();
            //3 is for delivery. therefor we have to add in Delivery Queue
            if (saletype == 3)
            {
                tbl_DeliveryQueue dq = new tbl_DeliveryQueue();
                dq.Customer_Id = customerId;
                dq.Sale_Id     = sale.Id;
                dq.Delivered   = false;
                dq.DatenTime   = DateTime.Now;
                if (deliveryBoyId != 0)
                {
                    dq.DeliveryBoyId = deliveryBoyId;
                }

                DeliveryQueue.insert(dq);
            }
            // printing
            if (receipt1)
            {
                PrintingUtils.printSaleReceipt(sale.Id, saleList, totalBill, remaining, saletype, customerAddress);
            }
            if (receipt2)
            {
                PrintingUtils.printSaleReceipt(sale.Id, saleList, totalBill, remaining, saletype, customerAddress);
            }
            if (receipt3)
            {
                PrintingUtils.printSaleReceipt(sale.Id, saleList, totalBill, remaining, saletype, customerAddress);
            }
            foreach (ItemOrDealSaleModel item in saleList)
            {
                tbl_SaleItem saleItem = new tbl_SaleItem();
                saleItem.Item_id  = item.Id;
                saleItem.Sale_id  = sale.Id;
                saleItem.Quantity = item.Quantity;
                SaleItem.insert(saleItem);
            }
            DetuctInventory.detuctInventoryOfList(saleList);
        }