private bool generarBoleta(int codVenT)
        {
            Boleta boleta = new Boleta();
            List<DetalleVentaBoleta> detalles = new List<DetalleVentaBoleta>();

            var lista = from obj in db.DetalleVenta
                        where obj.codVen == codVenT
                        select obj;

            foreach (var detalle in lista)
            {

                DetalleVentaBoleta de = new DetalleVentaBoleta();

                try
                {
                    var fu = db.Funcion.Find(detalle.codFuncion);
                    var evento = db.Eventos.Find(fu.codEvento);

                    var pe = db.PrecioEvento.Find(detalle.codPrecE);

                    de.Descripcion = evento.nombre + " " + fu.horaIni;

                    de.Cantidad = detalle.cantEntradas;
                    de.Codigo = detalle.codDetalleVenta;
                    de.Total = detalle.total;
                    de.Precio = pe.precio;
                    if (detalle.descTot.HasValue)
                    {
                        de.Descuento = detalle.descTot;

                    }
                    else
                    {
                        de.Descuento = 0;

                    }

                    detalles.Add(de);

                }
                catch (Exception ex)
                {

                    return false;

                }

            }

            boleta.detalles = detalles;
            try
            {
                var total = db.Ventas.Where(c => c.codVen == codVenT).First().MontoTotalSoles;

                if (total.HasValue)
                {
                    boleta.Total = total;

                }
                else
                {
                    //Cuando no hay total??
                    boleta.Total = 0;
                }

            }
            catch (Exception ex)
            {

            }

            string cadena = "";
            cadena += "                            TickNet                        \r\n";
            cadena += "                    Av.Universitaria No 1400               \r\n";
            cadena += "                           Lima-Peru                       \r\n";
            cadena += "                 Telefono: 620 0000 Anx 3090               \r\n";
            cadena += "                       RUC 20009080255                     \r\n";
            cadena += "             BOLETA DE VENTA ELECTRONICA                   \r\n";
            cadena += "Codigo  |Descripcion                      | Cant |  Total  \r\n";

            foreach (var detalle in boleta.detalles)
            {
                cadena += "" + detalle.Codigo.ToString().PadRight(10, ' ') + " " + detalle.Descripcion.PadRight(30, ' ').Substring(0, 30) +
                    " " + detalle.Cantidad.ToString().PadRight(10, ' ') + " " + detalle.Total.Value.ToString("0.##").PadRight(10, ' ') + "\r\n";
                if (detalle.Descuento != 0)
                {

                    cadena += "                         Descuento: " + detalle.Descuento + "/r/n";

                }

            }

            cadena += String.Empty.PadRight(60, '-') + "\r\n";
            cadena += String.Concat("Total: ").PadLeft(40, ' ') + boleta.Total.Value.ToString("0.##").PadRight(20, ' ');
            cadena += "\r\n";
            cadena += "\r\n";
            cadena += "\r\n";
            cadena += "                 GRACIAS POR SU COMPRA                    \r\n";

            Stream stream = Utilitarios.GenerateStreamFromString(cadena);

            StreamReader reader = new StreamReader(stream);
            Font printFont = new Font("Arial", 9);

            PrintDocument pd = new PrintDocument();

            string printer = pd.PrinterSettings.PrinterName;

            pd.PrintPage += (sender, args) =>
            {

                string line = null;
                float yPos;
                int count = 0;
                float leftMargin = 0;
                float topMargin = args.MarginBounds.Top;

                while ((line = reader.ReadLine()) != null)
                {

                    yPos = topMargin + (count * printFont.GetHeight(args.Graphics));

                    args.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, new StringFormat());

                    count++;
                }

            };
            try
            {
                pd.Print();

            }
            catch (Exception ex)
            {
                //No encontro alguna impresora activa.
                return false;

            }

            return true;
        }