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; } }
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"); }