private void txtPrecio_KeyPress(object sender, KeyPressEventArgs e) { modUsuario modUsuario = new modUsuario(); DataSet resultado2 = modUsuario.ControlDeAcceso(); modSesion modSesion = new modSesion(); if (e.KeyChar == (char)Keys.Enter) { if (IsNumeric(txtPrecio.Text)) { if (Convert.ToString(resultado2.Tables["rsUsuario"].Rows[0]["VenderHasta"]) == "bajoCosto") // verificando permiso si usuario puede vender hasta cero---------------------------------------- { cargarItem(); e.Handled = true; } else if (Convert.ToString(resultado2.Tables["rsUsuario"].Rows[0]["VenderHasta"]) == "costo") // verificando permiso si usuario puede vender hasta costo--------------------------------------- { if (Convert.ToDecimal(modSesion.convertirDecimal(txtPrecio.Text)) >= Convert.ToDecimal(productoAVender.Tables["rsProducto"].Rows[0]["costomedio"])) { cargarItem(); e.Handled = true; } else { MessageBox.Show("Precio fuera de limite, Precio es menor que costo "); } } else if (Convert.ToString(resultado2.Tables["rsUsuario"].Rows[0]["VenderHasta"]) == "precioMay") // verificando permiso si usuario puede vender hasta costo------------------------------------- { if (Convert.ToDecimal(modSesion.convertirDecimal(txtPrecio.Text)) >= Convert.ToDecimal(productoAVender.Tables["rsProducto"].Rows[0]["precioMayorista"])) { cargarItem(); e.Handled = true; } else { MessageBox.Show("Precio fuera de limite, Precio es menor que Precio Mayorista "); } } else if (Convert.ToString(resultado2.Tables["rsUsuario"].Rows[0]["VenderHasta"]) == "precioUni") // verificando permiso si usuario puede vender hasta costo { if (Convert.ToDecimal(modSesion.convertirDecimal(txtPrecio.Text)) >= Convert.ToDecimal(productoAVender.Tables["rsProducto"].Rows[0]["PrecioUnitario"])) { cargarItem(); e.Handled = true; } else { MessageBox.Show("Precio fuera de limite, Precio es menor que Precio Unitario "); } } } else { MessageBox.Show("Ingrese costo en numeros"); txtPrecio.Text = ""; txtPrecio.Focus(); } } }
// metodo para txtcantidad por que uso en el evento keypress y en el leave public void cantidadDobleUso() { if (IsNumeric(txtCantidad.Text)) { modSesion modSesion = new modSesion(); modUsuario modUsuario = new modUsuario(); DataSet resultado2 = modUsuario.ControlDeAcceso(); // se verifica si usuario puede vender stock insuficiente if (Convert.ToString(resultado2.Tables["rsUsuario"].Rows[0]["StockInsuficiente"]) == "si") { txtCantidad.Text = Convert.ToString(modSesion.mascaraCantidad(txtCantidad.Text)); txtPrecio.Focus(); } // si usuario no puede vender stock insuficiente verifica stock else if (modSesion.convertirDecimal(txtStock.Text) >= modSesion.convertirDecimal(txtCantidad.Text)) { txtCantidad.Text = Convert.ToString(modSesion.mascaraCantidad(txtCantidad.Text)); txtPrecio.Focus(); } else { MessageBox.Show("Stock Insuficiente"); } } else { MessageBox.Show("Ingrese Cantidad en numeros"); txtCantidad.Text = ""; txtCantidad.Focus(); } }
/// <procesar_la_compra> public bool procesarVenta() { MySqlCommand comando; MySqlTransaction transaccion; string sqlVenta; string sqlVentaItems; modSesion modSesion = new modSesion(); modUsuario modUsuario = new modUsuario(); Conexion_DB.AbrirConexion(); // se abre una conexion con la base de datos MySqlConnection con = Conexion_DB.conexion; transaccion = con.BeginTransaction(); // se inicia una transaccion con la base de datos, acontinuacion se inicia procesos multiples try { // se inicia proceso 1 : actualizar tabla Venta sqlVenta = "update db_ventas set FacturaNro=@fac, Id_Cliente=@cli, TipoDeVenta=@tipo ,FechaDeVenta=@fecha ,SubTotal=@sub ,Iva0=@iva0 ,Iva5=@iva5 ,Iva10=@iva10 ,TotalNeto=@total, TotalPago=0,TotalDescuento=0 ,TotalSaldo=@ttlsaldo,Id_Usuario=@user,estado=@Estado, TotalCosto=@ttlcosto where id=@id"; comando = new MySqlCommand(sqlVenta, con); comando.Parameters.AddWithValue("@fac", txtFactura.Text); comando.Parameters.AddWithValue("@cli", txtIdCliente.Text); if (cbxCondicion.selectedValue == "") { MessageBox.Show("Contado o credito?"); } comando.Parameters.AddWithValue("@tipo", cbxCondicion.selectedValue.ToString()); comando.Parameters.AddWithValue("@fecha", cbxfecha.Value); comando.Parameters.AddWithValue("@sub", modSesion.convertirDecimal(txtSubtotal.Text)); comando.Parameters.AddWithValue("@iva0", modSesion.convertirDecimal(txtIva0.Text)); comando.Parameters.AddWithValue("@iva5", modSesion.convertirDecimal(txtIva5.Text)); comando.Parameters.AddWithValue("@iva10", modSesion.convertirDecimal(txtIva10.Text)); comando.Parameters.AddWithValue("@total", modSesion.convertirDecimal(txtTotalNeto.Text)); comando.Parameters.AddWithValue("@ttlsaldo", modSesion.convertirDecimal(txtTotalNeto.Text)); int usr = Convert.ToInt32(modUsuario.VerificarIdUsuarioActivo()); comando.Parameters.AddWithValue("@user", usr); comando.Parameters.AddWithValue("@estado", 1); comando.Parameters.AddWithValue("@ttlcosto", vTotalCosto); comando.Parameters.AddWithValue("@id", Convert.ToInt32(txtVentaID.Text)); comando.ExecuteNonQuery(); // inicia proceso 2 : insertar registros en tabla Venta_items int c; c = 0; while (c < grilla.Rows.Count) { sqlVentaItems = "insert into db_ventaitems(Id_Ventas,Id_Producto,CostoMedio,Precio,Cantidad,Iva,Estado)values(@idcom,@idprod,@costomedio,@precio,@cantidad,@iva,@estado) "; comando = new MySqlCommand(sqlVentaItems, con); comando.Parameters.AddWithValue("@idcom", txtVentaID.Text); int idprocut1 = Convert.ToInt32(grilla[1, c].Value); comando.Parameters.AddWithValue("@idprod", idprocut1); comando.Parameters.AddWithValue("@costomedio", modSesion.convertirDecimal(grilla[8, c].Value)); comando.Parameters.AddWithValue("@precio", modSesion.convertirDecimal(grilla[4, c].Value)); comando.Parameters.AddWithValue("@cantidad", modSesion.convertirDecimal(grilla[3, c].Value)); comando.Parameters.AddWithValue("@iva", Convert.ToInt32(grilla[6, c].Value)); comando.Parameters.AddWithValue("@estado", 1); comando.ExecuteNonQuery(); c = c + 1; } // finaliza transaccion y aplica cambios en todas las tablas transaccion.Commit(); return(true); } catch (MySqlException ex) { MessageBox.Show("Error al procesar Venta, No se efectuaron cambios " + ex.Message); transaccion.Rollback(); return(false); } }