예제 #1
0
        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();
                }
            }
        }
예제 #2
0
 // 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();
     }
 }
예제 #3
0
        /// <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);
            }
        }