Ejemplo n.º 1
0
        public async Task <VentaTicketRequest> GetTicket(object id)
        {
            try
            {
                VentaTicketRequest venta = new VentaTicketRequest();
                using (IDbConnection conexion = new SqlConnection(WebConnectionString))
                {
                    conexion.Open();
                    var dynamicParameters = new DynamicParameters();
                    dynamicParameters.Add("@IdVenta", id);

                    venta.Venta = (await conexion.QueryAsync <Venta, Cliente, Venta>("[Venta].[SPCID_Get_DatosVentaDetalle]",
                                                                                     (x, cliente) =>
                    {
                        x.ClienteVenta = cliente;
                        return(x);
                    },
                                                                                     splitOn: "IdVenta,IdCliente",
                                                                                     param: dynamicParameters, commandType: CommandType.StoredProcedure)).FirstOrDefault();

                    using (var dr = conexion.QueryMultipleAsync("[Venta].[SPCID_Get_VentaDetalle]", param: dynamicParameters, commandType: CommandType.StoredProcedure).Result)
                    {
                        venta.dtoProducto = dr.Read <Producto>(new[] { typeof(Producto), typeof(DetalleProducto) },
                                                               (result) =>
                        {
                            var opcion          = (result[0] as Producto);
                            opcion.datoProducto = (result[1] as DetalleProducto);
                            return(opcion);
                        },
                                                               splitOn: "IdProducto,IdVentaProducto").ToList();

                        venta.dtoPaquete = dr.Read <Paquetes>(new[] { typeof(Paquetes), typeof(DetallesPaquete) },
                                                              (result) =>
                        {
                            var opcion         = (result[0] as Paquetes);
                            opcion.datoPaquete = (result[1] as DetallesPaquete);
                            return(opcion);
                        },
                                                              splitOn: "IdPaquete,IdVentaPaquete").ToList();

                        venta.dtoServicio = dr.Read <Servicio>(new[] { typeof(Servicio), typeof(DetalleServicio) },
                                                               (result) =>
                        {
                            var opcion          = (result[0] as Servicio);
                            opcion.datoServicio = (result[1] as DetalleServicio);
                            return(opcion);
                        },
                                                               splitOn: "IdServicio, IdVentaServicio").ToList();
                        //venta.dtoServicio = dr.Read<Servicio>().ToList();
                    }
                    return(venta);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 2
0
        public ImprimirVenta(VentaTicketRequest datos)
        {
            //Creamos una intancia de la clase CrearTicket
            ImpresoraTicket ticket = new ImpresoraTicket();

            //Ya podemos usar todos sus metodos
            //ticket.AbreCajon();//Para abrir el cajon de dinero

            //Diseño ticket

            //Datos de la cabecera del ticket

            ticket.TextoCentro(CurrentSession.NombreSucursal);
            ticket.TextoIzquierda(CurrentSession.Direccion);
            ticket.TextoIzquierda(CurrentSession.Telefono);
            ticket.TextoIzquierda(CurrentSession.RFC);


            ticket.lineasAsteriscos();

            //Sub cabecera
            ticket.TextoIzquierda("FOLIO:" + datos.Venta.Folio);
            ticket.TextoIzquierda("ATENDIO:" + CurrentSession.Nombres);
            ticket.TextoIzquierda("CLIENTE:" + datos.Venta.ClienteVenta.NombreCompleto);
            ticket.TextoIzquierda("");
            ticket.TextoExtremos("FECHA: " + DateTime.Now.ToShortDateString(), "HORA:" + DateTime.Now.ToShortTimeString());

            ticket.lineasAsteriscos();

            //Articulos a vender
            ticket.EncabezadoVenta();//Nombre de
            ticket.lineasAsteriscos();

            foreach (var item in datos.dtoProducto)
            {
                ticket.AgregarArticulos(item.Nombre, item.datoProducto.Cantidad, item.PrecioPublico, item.datoProducto.Total);
            }

            foreach (var item in datos.dtoPaquete)
            {
                ticket.AgregarArticulos(item.Nombre, item.datoPaquete.Cantidad, item.MontoPaquete, item.datoPaquete.Total);
            }

            foreach (var item in datos.dtoServicio)
            {
                ticket.AgregarArticulos(item.Nombre, item.datoServicio.Cantidad, item.Precio, item.datoServicio.Total);
            }

            ticket.lineasAsteriscos();
            //Resumen de la venta

            ticket.AgregarTotales("SUBTOTAL......$", datos.Venta.SubTotal);
            ticket.AgregarTotales("IVA...........$", datos.Venta.PorcentajeIva);
            ticket.AgregarTotales("TOTAL.........$", datos.Venta.PrecioConIva);
            ticket.TextoIzquierda("");

            //Texto final del ticket
            ticket.TextoIzquierda("");

            ticket.TextoCentro("GRACIAS POR SU COMPRA");
            //ticket.CortaTicket();
            ticket.ImprimirTicket("BIXOLON SRP-350plus");
        }