private void Imprimir() { CrearTicket ticket = new CrearTicket(); string cajaImprimir = "CAJA #" + Program.NumeroCaja; string fecha = DateTime.Now.Date.ToString(); string cantidadAvance = txtCantidadAvances.Text; string avances = Funcion.reemplazarcaracterViceversa(txtAvances.Text); string efectivo = Convert.ToString(Convert.ToSingle(Funcion.reemplazarcaracterViceversa(txtTotalBillestes.Text)) + Convert.ToSingle(Funcion.reemplazarcaracterViceversa(txtTotalMonedas.Text))); string cheques = Funcion.reemplazarcaracterViceversa(txtTotalCheque.Text); string Empresa = objConsulta.ObtenerValorCampo("NOMBRE", "TbEmpresa", "where IDEMPRESA = " + Program.IDEMPRESA); ticket.TextoCentro(Empresa); ticket.TextoIzquierda(" "); ticket.TextoCentro("ARQUEO DE CAJA"); ticket.TextoIzquierda(" "); ticket.TextoCentro(cajaImprimir); ticket.TextoCentro(Program.Usuario); ticket.TextoIzquierda(" "); ticket.TextoCentro(fecha); ticket.lineasAsteriscos(); ticket.TextoExtremos(cantidadAvance + " Avances: ", "$" + Funcion.reemplazarcaracter(avances)); ticket.lineasAsteriscos(); ticket.TextoExtremos("Cheques: ", "$" + Funcion.reemplazarcaracter(cheques)); ticket.lineasAsteriscos(); ticket.TextoExtremos("Efectivo: ", "$" + Funcion.reemplazarcaracter(efectivo)); ticket.lineasAsteriscos(); ticket.TextoExtremos("V.Entregado: ", "$" + Funcion.reemplazarcaracter(Convert.ToString(Convert.ToSingle(efectivo) + Convert.ToSingle(cheques) + Convert.ToSingle(avances)))); ticket.lineasAsteriscos(); ticket.CortaTicket(); var valor = ConfigurationManager.AppSettings["Local"]; ticket.ImprimirTicket(valor); }
private async void MethodGuardarVenta() { await Task.Factory.StartNew(() => { try { ESGR_Venta.CuentasXML = MethodCuentasXML(); ESGR_Venta.DetalleXML = MethodDetalleXML(); new BSGR_Venta().TransVenta(ESGR_Venta); if (OpcionGuardado == "VR") { var CollectionMSGR_PedidoDetalle = new BSGR_PedidoDetalle().GetCollectionPedidoDetalle(ESGR_Venta.ESGR_Pedido); #region REALIZA IMPRESION CrearTicket ticket = new CrearTicket(); ticket.TextoCentro(SGRVariables.ESGR_Usuario.ESGR_Empresa.RazonSocial); ticket.TextoIzquierda("RUC: " + SGRVariables.ESGR_Usuario.ESGR_Empresa.Ruc); ticket.TextoIzquierda("DIREC: " + SGRVariables.ESGR_Usuario.ESGR_Empresa.DireccionFiscal); ticket.TextoIzquierda("TELEF: " + SGRVariables.ESGR_Usuario.ESGR_Empresa.Telefono); ticket.TextoIzquierda(""); ticket.lineasIgual(); ticket.TextoIzquierda(""); ticket.TextoDerecha("Ticket #001-" + ESGR_Venta.ESGR_Pedido.IdPedido.ToString("00000#")); ticket.TextoIzquierda(SGRVariables.ESGR_Usuario.ESGR_Perfil.NombrePerfil + ": " + SGRVariables.ESGR_Usuario.IdUsuario + " " + SGRVariables.ESGR_Usuario.Nombres); ticket.TextoExtremos("Fecha: " + DateTime.Now.ToShortDateString(), "Hora: " + DateTime.Now.ToShortTimeString()); ticket.TextoExtremos("Mesa: " + ESGR_Venta.ESGR_Pedido.Identificador, "Personas: " + ESGR_Venta.ESGR_Pedido.Cubierto); ticket.TextoIzquierda(""); ticket.lineasIgual(); ticket.TextoIzquierda(""); //Articulos a vender. ticket.EncabezadoVenta();//NOMBRE DEL ARTICULO, CANT, PRECIO, IMPORTE ticket.lineasGuion(); foreach (var item in CollectionMSGR_PedidoDetalle) { ticket.AgregaArticulo(item.ESGR_Producto.Producto, (int)item.Cantidad, (decimal)item.ESGR_Producto.Precio, ((int)item.Cantidad * (decimal)item.ESGR_Producto.Precio)); } ticket.lineasGuion(); decimal Total = CollectionMSGR_PedidoDetalle.Sum(x => ((int)x.Cantidad * (decimal)x.ESGR_Producto.Precio)); ticket.AgregarTotales(" TOTAL S/", Total); ticket.TextoIzquierda(""); ticket.TextoIzquierda("Razon Social:"); ticket.lineasSubGuion(); ticket.lineasSubGuion(); ticket.TextoIzquierda("RUC:"); ticket.lineasSubGuion(); ticket.TextoIzquierda("Direccion:"); ticket.lineasSubGuion(); ticket.lineasSubGuion(); ticket.TextoIzquierda(""); ticket.TextoCentro("¡ GRACIAS POR SU PREFERENCIA !"); ticket.TextoIzquierda("ESTE NO ES UN COMPROBANTE FISCAL CANJEAR POR BOLETA O FACTURA"); if (SGRVariables.NotificacionPreCuenta != null && SGRVariables.NotificacionPreCuenta.Trim().Length != 0) { ticket.TextoIzquierda(""); ticket.lineasAsteriscos(); ticket.TextoIzquierda(""); ticket.TextoIzquierda(SGRVariables.NotificacionPreCuenta); ticket.TextoIzquierda(""); } ticket.ImprimirTicket(SGRVariables.ImpresoraCaja); #endregion } CmpMessageBox.Show(SGRMessage.AdministratorVenta, SGRMessageContent.ContentSaveOK, CmpButton.Aceptar, () => Volver(null)); } catch (Exception ex) { CmpMessageBox.Show(SGRMessage.AdministratorVenta, ex.Message, CmpButton.Aceptar); } }); }
private void CrearTicket() { //Creamos una instancia d ela clase CrearTicket CrearTicket ticket; //NECESITO UN METODO QUE ME RECUPERE FILA Y COLUMA SEGUN EL ID DEL ASIENTO, TIPO DE BOLETO ETC.. for (int i = 0; i < total_asientos; i++) { ticket = new CrearTicket(); decimal precio_bol = 0; string tipo_bol = ""; string fila = ""; string columna = ""; asientos.RecupDatos(com, i); int id = asientos.id_boleto[i]; foreach (var x in det.getDetalles_Compra(id, com)) { tipo_bol = x.tipo_bol_nom; fila = x.fila; columna = x.columna; if (tipo_bol == "Niño" || tipo_bol == "Adulto (Mayor 60)") { precio_bol = 30M + asientos.prec_sala; } else if (tipo_bol == "Adulto") { precio_bol = 40M + asientos.prec_sala; } #region BoletosImprimir //Ya podemos usar todos sus metodos ticket.AbreCajon();//Para abrir el cajon de dinero. //De aqui en adelante pueden formar su ticket a su gusto... Les muestro un ejemplo //Datos de la cabecera del Ticket. ticket.TextoCentro("CINEXCESO"); ticket.TextoIzquierda("EXPEDIDO EN: LOCAL PRINCIPAL"); ticket.TextoIzquierda("DIREC: DIRECCION DE LA EMPRESA"); ticket.TextoIzquierda("TELEF: 4530000"); ticket.TextoIzquierda("R.F.C: XXXXXXXXX-XX"); ticket.TextoIzquierda("EMAIL: [email protected]");//Es el mio por si me quieren contactar ... ticket.TextoIzquierda(""); ticket.TextoExtremos("Caja # 1", "Ticket # 002-00000" + i + "" + "0" + "0"); ticket.lineasAsteriscos(); //Sub cabecera. ticket.TextoIzquierda(""); ticket.TextoIzquierda("ATENDIÓ: ALAN JOSÉ COLLI TUN"); ticket.TextoIzquierda("CLIENTE: PUBLICO EN GENERAL"); ticket.TextoIzquierda(""); ticket.TextoExtremos("FECHA: " + DateTime.Now.ToShortDateString(), "HORA: " + DateTime.Now.ToShortTimeString()); ticket.lineasAsteriscos(); //Articulos a vender. ticket.EncabezadoVenta();//NOMBRE DEL ARTICULO, CANT, PRECIO, IMPORTE ticket.AgregaArticulo(fun.nombre_peli, fun.NUM_SALA.ToString(), fun.Hora_ini, precio_bol); ticket.TextoIzquierda("Asiento: " + fila + "" + columna); ticket.TextoIzquierda("Sala: " + "" + fun.NUM_SALA + ""); ticket.TextoIzquierda(tipo_bol); ticket.lineasIgual(); //Resumen de la venta. Sólo son ejemplos ticket.AgregarTotales(" SUBTOTAL......$", precio_bol); ticket.AgregarTotales(" TOTAL NETO....$", TOT);//La M indica que es un decimal en C# ticket.TextoIzquierda(""); ticket.AgregarTotales(" EFECTIVO......$", pago_cli); ticket.AgregarTotales(" CAMBIO........$", CAMBIO); //Texto final del Ticket. ticket.TextoIzquierda(""); ticket.TextoCentro("¡DISFRUTE LA FUNCIÓN!"); ticket.CortaTicket(); ticket.GuardarTicket(i); //ticket.ImprimirTicket("Microsoft XPS Document Writer");//Nombre de la impresora ticketera #endregion } } }
private void button2_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(txtTicket.Text)) { CrearTicket ticket = new CrearTicket(); ConexBD cn1 = new ConexBD(); cn1.Conectar(); ticket.TextoCentro("LAVANDERIA SAN ISIDRO S.A"); ticket.TextoIzquierda(""); MySqlCommand _comando1 = new MySqlCommand(String.Format( "SELECT o.idOrden,c.dniCliente,c.nombreCliente,o.fechaCreado,o.fechaEntrega, o.totalOrden,o.descuento,(l.total-o.`totalOrden`) dscto ,o.aplicaDscto,l.cantidad,l.precio,l.descripcion,l.total,l.colorPrenda,l.marca,l.defecto,p.pago1,p.pago2,u.direccion,u.telefono,u.impresora,p.tipoPago1,o.express,o.delivery FROM Orden o INNER JOIN Cliente c ON o.idCliente=c.idCliente INNER JOIN Pago p ON o.idOrden=p.idOrden INNER JOIN OrdenLinea l ON o.idOrden=l.idOrden INNER JOIN usuario u ON u.id=o.idUsuario WHERE o.idOrden={0}", txtTicket.Text), cn1.ObtenerConexion()); ConexBD cn2 = new ConexBD(); cn2.Conectar(); MySqlCommand _comando = new MySqlCommand(String.Format( "SELECT o.idOrden,c.dniCliente,c.nombreCliente,o.fechaCreado,o.fechaEntrega, o.totalOrden,l.cantidad,l.precio,l.descuento,l.descripcion,l.total,l.colorPrenda,l.marca,l.defecto,p.pago1,p.pago2,u.direccion,u.telefono,u.impresora,p.tipoPago1,o.garantia,o.express,o.delivery FROM Orden o INNER JOIN Cliente c ON o.idCliente=c.idCliente INNER JOIN Pago p ON o.idOrden=p.idOrden INNER JOIN OrdenLinea l ON o.idOrden=l.idOrden INNER JOIN usuario u ON u.id=o.idUsuario WHERE o.idOrden={0}", txtTicket.Text), cn2.ObtenerConexion()); MySqlDataReader _reader1 = _comando1.ExecuteReader(); MySqlDataReader _reader = _comando.ExecuteReader(); _reader1.Read(); ticket.TextoIzquierda("DIRECCION: " + _reader1.GetString(18).ToUpper()); ticket.TextoIzquierda("HORARIO: LUNES A VIERNES DE 8:00AM"); ticket.TextoIzquierda(" A 8:00PM Y SABADO DE 8:00AM A 7:00PM"); ticket.TextoIzquierda("TELEF: " + _reader1.GetString(19)); ticket.TextoIzquierda("WEB:LAVANDERIASANISIDRO.COM"); ticket.lineasIgual(); ticket.TextoIzquierda("CLIENTE: " + _reader1.GetString(2).ToUpper()); if (!_reader1.GetString(1).Equals("")) { ticket.TextoIzquierda("DNI: " + _reader1.GetString(1)); } ticket.TextoIzquierda("FECHA DE ORDEN: " + _reader1.GetString(3)); ticket.TextoIzquierda("FECHA DE ENTREGA: " + _reader1.GetString(4).Substring(0, 10)); ticket.TextoExtremos("NRO DE ORDEN:", "Ticket # " + _reader1.GetString(0)); ticket.lineasAsteriscos(); ticket.EncabezadoVenta(); ticket.lineasAsteriscos(); decimal totalSinDescuento = 0; decimal cargoVisa = 0; if (_reader1.GetDecimal(21) == 1) { cargoVisa = 5; } while (_reader.Read()) { ticket.AgregaArticulo(_reader.GetString(9), _reader.GetDecimal(6), _reader.GetDecimal(7), _reader.GetDecimal(10)); if (!_reader.GetString(11).Equals("") || !_reader.GetString(12).Equals("") || !_reader.GetString(13).Equals("")) { ticket.TextoExtremos(_reader.GetString(11) + " " + _reader.GetString(12), _reader.GetString(13)); } if (_reader1.GetDecimal(8) > 0 && _reader.GetDecimal(8) > 0) { ticket.TextoExtremos("PROM DSCTO -" + _reader1.GetDecimal(6) + "% ", " - " + (Decimal.Round(Decimal.Round((Convert.ToDecimal(_reader.GetDecimal(10))), 2) * _reader1.GetDecimal(6) / 100, 2))); } totalSinDescuento += _reader.GetDecimal(10); ticket.lineasGuio(); } ticket.lineasAsteriscos(); if (_reader1.GetDecimal(6) > 0) { if (_reader1.GetDecimal(8) > 0) { ticket.AgregarTotales(" TOTAL..........S/.", _reader.GetDecimal(14)); } else { ticket.AgregarTotales(" TOTAL..........S/.", totalSinDescuento); } // ticket.AgregarTotales(" DESCUENTO.." + (_reader1.GetDecimal(6) - cargoVisa) + "%.", (totalSinDescuento - _reader1.GetDecimal(5))); } else { if (_reader1.GetDecimal(23) > 0) { ticket.TextoDerecha(" SERVICIO DELIVERY"); } if (_reader1.GetDecimal(22) > 0) { ticket.TextoDerecha(" SERVICIO EXPRESS 50% +"); } ticket.AgregarTotales(" TOTAL..........S/.", _reader.GetDecimal(5)); } ticket.AgregarTotales(" A CUENTA.......S/.", _reader.GetDecimal(14));//La M indica que es un decimal en C# ticket.AgregarTotales(" SALDO..........S/.", _reader.GetDecimal(15)); ticket.TextoIzquierda(""); if (_reader.GetInt32(19) == 1) { ticket.TextoCentro("Prendas sin garantía"); } ticket.TextoCentro("¡GRACIAS POR SU PREFERENCIA!"); ticket.CortaTicket(); ticket.ImprimirTicket(_reader1.GetString(20)); _comando.Connection.Close(); _comando1.Connection.Close(); cn1.cerrarConexion(); cn2.cerrarConexion(); } else { MessageBox.Show("Debe ingresar un Numero de Orden", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void ImprimirTicket(string nombreNegocio, string direccion, string telefono, ref int numeroTickt, ref int numeroDetalle, ref List <DetallePedido> lista, string atencion, string nombreCliente) { //Creamos una instancia d ela clase CrearTicket CrearTicket ticket = new CrearTicket(); //Ya podemos usar todos sus metodos ticket.AbreCajon();//Para abrir el cajon de dinero. //De aqui en adelante pueden formar su ticket a su gusto... Les muestro un ejemplo //Datos de la cabecera del Ticket. ticket.TextoCentro(nombreNegocio); ticket.TextoIzquierda("EXPEDIDO EN: LOCAL PRINCIPAL"); ticket.TextoIzquierda("DIREC: " + direccion); ticket.TextoIzquierda("TELEF: " + telefono); //ticket.TextoIzquierda("R.F.C: XXXXXXXXX-XX"); //ticket.TextoIzquierda("EMAIL: [email protected]");//Es el mio por si me quieren contactar ... ticket.TextoIzquierda(""); ticket.TextoExtremos("Caja # 1", "Ticket # " + numeroTickt.ToString("D3") + "-" + numeroDetalle.ToString("D7")); ticket.lineasAsteriscos(); //Sub cabecera. ticket.TextoIzquierda(""); ticket.TextoIzquierda("ATENDIÓ: " + atencion); // + nombreEmpleado meter variable ticket.TextoIzquierda("CLIENTE: " + nombreCliente); // + nombreCliente meter variable ticket.TextoIzquierda(""); ticket.TextoExtremos("FECHA: " + DateTime.Now.ToShortDateString(), "HORA: " + DateTime.Now.ToShortTimeString()); ticket.lineasAsteriscos(); //Articulos a vender. ticket.EncabezadoVenta();//NOMBRE DEL ARTICULO, CANT, PRECIO, IMPORTE ticket.lineasAsteriscos(); //Si tiene una DataGridView donde estan sus articulos a vender pueden usar esta manera para agregarlos al ticket. //foreach (DataGridViewRow fila in dgvLista.Rows)//dgvLista es el nombre del datagridview //{ //ticket.AgregaArticulo(fila.Cells[2].Value.ToString(), int.Parse(fila.Cells[5].Value.ToString()), //decimal.Parse(fila.Cells[4].Value.ToString()), decimal.Parse(fila.Cells[6].Value.ToString())); //} foreach (DetallePedido item in lista) { ticket.AgregaArticulo(item.variedad, item.cantidad, item.precio, item.precio / item.cantidad); } //ticket.AgregaArticulo("Este es un nombre largo del articulo, para mostrar como se bajan las lineas", 1, 30, 30); ticket.lineasIgual(); //Resumen de la venta. Sólo son ejemplos //ticket.AgregarTotales(" SUBTOTAL......$", 100); //ticket.AgregarTotales(" IVA...........$", 10.04M);//La M indica que es un decimal en C# ticket.AgregarTotales(" TOTAL.........$", lista.AsEnumerable().Sum(o => o.precio)); ticket.TextoIzquierda(""); // ticket.AgregarTotales(" EFECTIVO......$", 200); // ticket.AgregarTotales(" CAMBIO........$", 0); //Texto final del Ticket. //ticket.TextoIzquierda(""); //ticket.TextoIzquierda("ARTÍCULOS VENDIDOS: 3"); ticket.TextoIzquierda(""); ticket.TextoCentro("¡GRACIAS POR SU COMPRA!"); ticket.CortaTicket(); ticket.ImprimirTicket("Microsoft XPS Document Writer");//Nombre de la impresora ticketera if (numeroDetalle <= 9999999) { numeroDetalle++; } else if (numeroTickt <= 999) { numeroTickt++; numeroDetalle = 1; } else { numeroTickt = 1; numeroDetalle = 1; } }
public override void Save() { bs.EndEdit(); bsDoc.EndEdit(); try { decimal total = 0; for (int i = 0; i <= dtDoc_Inv.Rows.Count - 1; i++) //no se puede con foreach por que al remover algunas filas daña las colas. { DataRow drDIN = dtDoc_Inv.Rows[i]; if (!drDIN.HasVersion(DataRowVersion.Original) && drDIN["idInv"].Equals(DBNull.Value)) { dtDoc_Inv.Rows.Remove(drDIN); continue; } int idInv = TryInt(drDIN["idInv"]); DataRow drInv = dtInv.Rows.Find(idInv); decimal cantidad = TryDec(drDIN["Cantidad"]); decimal ExistenciaOri = TryDec(ExecuteScalar("SELECT Existencia FROM Inv WHERE idInv = " + gsql(idInv))); decimal existenciaFut = ExistenciaOri - (cantidad - (drDIN.HasVersion(DataRowVersion.Original) ? TryDec(drDIN["Cantidad", DataRowVersion.Original]) : 0)); if (existenciaFut < 0) { ShowMsg("Uno o varios productos alcanzará un saldo negativo... corrígelo.", "Existencia Negativa", "error"); return; } else { drInv["Existencia"] = existenciaFut; } total += TryDec(drDIN["CostoT"]);; } dtDoc.Rows[0]["Total"] = total; if (chkPS.Checked) { DataRow drDNI = null; if (dtDNI.Rows.Count == 0) { drDNI = dtDNI.NewRow(); drDNI["Cantidad"] = total; drDNI["Saldo"] = total - TryDec(txtAbono.Text); dtDNI.Rows.Add(drDNI); } else { drDNI = dtDNI.Rows[0]; drDNI["Cantidad"] = total; drDNI["Saldo"] = TryDec(versionOriginal(drDNI, "Saldo")) - TryDec(txtAbono.Text); } } Update(ds); MessageBox.Show("Grabación Exitosa", "Información", MessageBoxButtons.OK); CrearTicket impresion = new CrearTicket(); impresion.TextoIzquierda(" "); impresion.TextoCentro("Factura de Venta"); impresion.TextoIzquierda(" "); impresion.TextoExtremos("FECHA : " + dtpFechaDoc.Text, "HORA : " + DateTime.Now.Hour.ToString()); impresion.TextoIzquierda(" "); impresion.EncabezadoVenta(); impresion.lineasGuio(); foreach (DataRow dr in dtDoc_Inv.Rows) { string articulo = TryStr(dtProducto.Select("idProducto = " + gsql(dr["_idProducto"]))[0]["nomProducto"]) + " " + TryStr(dtCualidad.Select("idCualidad = " + gsql(dr["_idCualidad"]))[0]["nomCualidad"]) + " " + TryStr(dtTalla.Select("idTalla = " + gsql(dr["_idTalla"]))[0]["nomTalla"]); int cantidad = TryInt(dr["Cantidad"]); decimal precio = TryDec(dr["CostoT"]), importe = 0; impresion.AgregaArticulo(articulo, cantidad, precio, importe); } impresion.lineasIgual(); impresion.AgregarTotales(" TOTAL : $ ", total); //impresion.CortaTicket(); impresion.ImprimirTicket("Enviar a OneNote 16"); //impresion.ImprimirTicket("Microsoft Print to PDF"); ds.Clear(); New(); } catch (Exception e) { MessageBox.Show(e.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }