示例#1
0
        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");
            }
        }
示例#2
0
        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);
            //    }
            //}
        }