private void ImprimirTicket(int idVenta, decimal?pago, decimal?cambio) { try { DataSet1TableAdapters.QueriesTableAdapter qta = new Paleteria.DataSet1TableAdapters.QueriesTableAdapter(); DataSet1TableAdapters.SP_tabla_ventaTableAdapter tvta = new Paleteria.DataSet1TableAdapters.SP_tabla_ventaTableAdapter(); DataSet1TableAdapters.SP_tabla_ventaDetalleTableAdapter tvdta = new Paleteria.DataSet1TableAdapters.SP_tabla_ventaDetalleTableAdapter(); string impresora = qta.obtenerParametro("nombreImpresora"); string nombreEmpresa = qta.obtenerParametro("nombreEmpresa"); string sucursal = qta.obtenerParametro("sucursal"); string telefono = qta.obtenerParametro("telefono"); string leyenda = qta.obtenerParametro("leyenda"); string nombreUsuario = qta.obtenerNombreUsuario(idUsuario); string turno = lblTurno.Text; DataTable venta = tvta.GetData("F", idVenta, null, null); DataTable ventaDetalle = tvdta.GetData("F", null, null, null, null, idVenta); //crea la estructura del ticket Ticket tick = new Ticket(); if (!(tick.PrinterExists(impresora))) { MessageBox.Show("La impresora no esta conectada", "Error"); return; } tick.AddHeaderLine(nombreEmpresa); tick.AddHeaderLine(sucursal); tick.AddHeaderLine("Tel: " + telefono); tick.AddHeaderLine("Fecha: " + venta.Rows[0]["fechaHora"].ToString()); tick.AddHeaderLine("Vendedor: " + qta.obtenerNombreUsuario(int.Parse(venta.Rows[0]["idUsuario"].ToString())).ToString()); tick.AddHeaderLine("-------TURNO: " + turno + "---------"); tick.AddHeaderLine("-------------------------"); tick.AddHeaderLine("Cantidad Producto "); tick.AddHeaderLine(" Precio Subtotal"); tick.AddHeaderLine("-------------------------"); foreach (DataGridViewRow row in dataGridView1.Rows) { //hacer que el producto no se imprima completo ya que solo son 25 caracteres por linea // vamos a dejar 20 para el nombre y 5 para a cantidad //por ahora lo hace con el grid que ya esta dibujado decimal subtotal = decimal.Parse(row.Cells[2].Value.ToString()) * decimal.Parse(row.Cells[3].Value.ToString()); string linea1 = row.Cells[2].Value.ToString() + " " + row.Cells[1].Value.ToString(); string linea2 = " " + row.Cells[3].Value.ToString() + " " + subtotal.ToString(); tick.AddHeaderLine(linea1); tick.AddHeaderLine(linea2); } tick.AddHeaderLine("-------------------------"); tick.AddHeaderLine("TOTAL: " + total); tick.AddHeaderLine("SU PAGO: " + pagot); tick.AddHeaderLine("SU CAMBIO: " + cambio); NumLetra numletra = new NumLetra(); tick.AddFooterLine(numletra.Convertir(total.ToString(), false)); tick.AddFooterLine(leyenda); tick.PrintTicket(impresora); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); } }
private void btn_guardar_Click(object sender, EventArgs e) { if (dataGridView1.Rows.Count == 0) { return; } Pago pagof = new Pago(); pagof.total = total; pagof.ShowDialog(); if (pagof.DialogResult == DialogResult.Cancel) { return; } pagot = pagof.pago; cambio = pagof.cambio; try { //realizar venta //recorre el datagrid para sacar los productos, //mete a la base de datos la venta y despues los detalles DataSet1TableAdapters.SP_tabla_ventaTableAdapter tvta = new Paleteria.DataSet1TableAdapters.SP_tabla_ventaTableAdapter(); DataTable venta = tvta.GetData("I", null, idUsuario, DateTime.Now); int idVenta = int.Parse(venta.Rows[0]["idVenta"].ToString()); DataSet1TableAdapters.SP_tabla_ventaDetalleTableAdapter vdta = new Paleteria.DataSet1TableAdapters.SP_tabla_ventaDetalleTableAdapter(); //Hace el descuento de las existencias. DataSet1TableAdapters.QueriesTableAdapter qta = new Paleteria.DataSet1TableAdapters.QueriesTableAdapter(); foreach (DataGridViewRow row in dataGridView1.Rows) { int idProd = int.Parse(row.Cells[0].Value.ToString()); int cantidad = int.Parse(row.Cells[2].Value.ToString()); bool mayor = (cantidad >= mayoreo); vdta.GetData("I", 0, idProd, cantidad, mayor, idVenta); qta.SP_tabla_productoUbicacion("Q", idProd, 1, cantidad); } ImprimirTicket(idVenta, pagot, cambio); int seg = int.Parse(qta.obtenerParametro("cierraVentanaCambio").ToString()); AutoClosingMessageBox.Show("CAMBIO: $" + cambio.ToString(), "Información", seg * 1000); nuevaVenta(); this.Show(); } catch (Exception ex) { MessageBox.Show(ex.Message, "ERROR"); } //jdr // no puedo agregar nada de data set a la bd mejor cuando vea al jaime :P pero en teoria jala asi //int idprod, cantidad=0; //for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++) //{ // idprod=int.Parse(dataGridView1.Rows[i].Cells[0].Value); // cantidad = int.Parse(dataGridView1.Rows[i].Cells[2].Value); //if (lproductos.Count() > 10) //{ // costo = decimal.Parse(dataGridView1.Rows[i].Cells[4].Value); //} //else // costo = decimal.Parse(dataGridView1.Rows[i].Cells[3].Value); // try // { // DataSet1TableAdapters.SP_tabla_productoUbicaciónTableAdapter produc = new Paleteria.DataSet1TableAdapters.SP_xxxx("U", idprod, cantidad,costo);; // // } // catch (Exception e) // { // DataSet1TableAdapters.SP_tabla_productoUbicaciónTableAdapter produc = new Paleteria.DataSet1TableAdapters.SP_xxxx("I", idprod, cantidad,costo); // } //} }