// 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(); } }
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-CalculoIva> private decimal calcularIva() { modSesion modSesion = new modSesion(); var montoIva = default(decimal); decimal valor; int iva; iva = Convert.ToInt32(productoAVender.Tables["rsProducto"].Rows[0]["iva"]); valor = modSesion.convertirDecimal(txtCantidad.Text) * modSesion.convertirDecimal(txtPrecio.Text); if (iva == 0) { montoIva = 0; vIva0 = vIva0 + valor; // acumulando total iva exenta } else if (iva == 5) { montoIva = valor / 21; // calculando importe iva incluido 5% vIva5 = vIva5 + montoIva; // acumulando total iva 5% } else if (iva == 10) { montoIva = valor / 11; // calculando importe iva incluido 5% vIva10 = vIva10 + montoIva; } vTotalIVa = vIva5 + vIva10; // sumando total iva solo 5 y 10% txtIva0.Text = Convert.ToString(modSesion.mascaraPrecio(vIva0)); txtIva5.Text = Convert.ToString(modSesion.mascaraPrecio(vIva5)); txtIva10.Text = Convert.ToString(modSesion.mascaraPrecio(vIva10)); txtTotalIva.Text = Convert.ToString(modSesion.mascaraPrecio(vTotalIVa)); return(montoIva); }
//metodo para cargar en la grilla private void cargarItem() { modSesion modSesion = new modSesion(); int n; decimal subtotalProducto; grilla.Rows.Add(); n = grilla.Rows.Count - 1; grilla[0, n].Value = n + 1; // items grilla[1, n].Value = productoAVender.Tables["rsProducto"].Rows[0]["id"]; // codigo grilla[2, n].Value = productoAVender.Tables["rsProducto"].Rows[0]["descripcion"]; // descripcion grilla[3, n].Value = txtCantidad.Text; // cantidad grilla[4, n].Value = modSesion.mascaraPrecio(txtPrecio.Text); // costo subtotalProducto = modSesion.convertirDecimal(txtCantidad.Text) * modSesion.convertirDecimal(txtPrecio.Text); // calculando subtotal del producto grilla[5, n].Value = modSesion.mascaraPrecio(subtotalProducto); // subttotal grilla[6, n].Value = productoAVender.Tables["rsProducto"].Rows[0]["iva"]; // iva grilla[7, n].Value = modSesion.mascaraPrecio(calcularIva()); // calcula monto iva incluido grilla[8, n].Value = modSesion.mascaraPrecio(productoAVender.Tables["rsProducto"].Rows[0]["costomedio"]); // costo medio del producto vTotalCosto = vTotalCosto + Convert.ToDecimal(productoAVender.Tables["rsProducto"].Rows[0]["costomedio"]) * modSesion.convertirDecimal(txtCantidad.Text); vTotalNeto = vTotalNeto + modSesion.convertirDecimal(txtCantidad.Text) * modSesion.convertirDecimal(txtPrecio.Text); // calcula total neto IVA INCLUIDO vSubtotal = vTotalNeto - vTotalIVa; // calcula subtotal que es total neto menos iva incluido txttotalNetoGrande.Text = Convert.ToString(modSesion.mascaraPrecio(vTotalNeto)); txtTotalNeto.Text = Convert.ToString(modSesion.mascaraPrecio(vTotalNeto)); txtSubtotal.Text = Convert.ToString(modSesion.mascaraPrecio(vSubtotal)); actualiarTotalMonedas(vTotalNeto); // se envia total neto para convertir en monedas limpiarItems(); txtCodigoProducto.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); } }