/// <summary> /// verifica si un producto se encuentra en la BD /// </summary> /// <param name="producto">producto a buscar en la BD</param> /// <returns>devuelve true si existe, false si no</returns> public static bool BuscarProductos(Producto producto) { try { string a1 = producto.Nombre; string command = "SELECT * FROM Producto WHERE nombre=@nombre and marca=@marca"; SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); sqlCommand.Parameters.AddWithValue("nombre", producto.Nombre); sqlCommand.Parameters.AddWithValue("marca", producto.Marca); ConexionDB.AbrirConexion(); SqlDataReader reader = sqlCommand.ExecuteReader(); while (reader.Read()) { return(true); } return(false); } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// buscar los datos de la tabla y los devuelve /// </summary> /// <returns>devuelve una lista de string con los movimientos</returns> public static List <string> RecuperarDatos() { try { string command = "SELECT * FROM Movimiento"; ConexionDB.AbrirConexion(); SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); SqlDataReader reader = sqlCommand.ExecuteReader(); List <string> listaMovimientos = new List <string>(); StringBuilder movimiento; while (reader.Read()) { movimiento = new StringBuilder(); movimiento.Append($"{(int)reader["id"]} {(string)reader["comprador"]} {(int)reader["cantidad"]} {(float)((double)reader["totalPago"])} {((DateTime)reader["fecha"]).ToString("yyyy/MM/dd")} {(string)reader["operacion"]}"); listaMovimientos.Add(movimiento.ToString()); } return(listaMovimientos); } catch (Exception ex) { throw new ErrorEnBDExcepcion(ex.Message); } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// modifica un producto en la BD /// </summary> /// <param name="producto">producto modificado</param> public static void Modificar(Producto producto) { try { string command = "UPDATE Producto SET precio=@precio, stock=@stock WHERE nombre=@nombre and marca=@marca"; SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); sqlCommand.Parameters.AddWithValue("id", producto.Id); sqlCommand.Parameters.AddWithValue("nombre", producto.Nombre); sqlCommand.Parameters.AddWithValue("marca", producto.Marca); sqlCommand.Parameters.AddWithValue("precio", producto.Precio); sqlCommand.Parameters.AddWithValue("stock", producto.Stock); ConexionDB.AbrirConexion(); if (sqlCommand.ExecuteNonQuery() == 0) { throw new ErrorEnBDExcepcion(); } } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// busca un producto por el id pasado por parametro /// </summary> /// <param name="idProducto">is a buscar</param> /// <returns>devuelve el producto buscado</returns> public static Producto ListarProductosPorId(int idProducto) { try { string command = "SELECT * FROM Producto WHERE id=" + idProducto; SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); ConexionDB.AbrirConexion(); SqlDataReader reader = sqlCommand.ExecuteReader(); Producto producto = null; while (reader.Read()) { int id = (int)reader["id"]; string nombre = (string)reader["nombre"]; string marca = (string)reader["marca"]; int stock = (int)reader["stock"]; float precio = (float)((double)reader["precio"]); producto = new Producto(id, nombre, marca, precio, stock); } return(producto); } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// recupera los datos de la BD /// </summary> /// <returns>decvuelve una lista de productos</returns> public static List <Producto> RecuperarDatos() { try { string command = "SELECT * FROM Producto"; ConexionDB.AbrirConexion(); SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); SqlDataReader reader = sqlCommand.ExecuteReader(); List <Producto> productos = new List <Producto>(); while (reader.Read()) { int id = (int)reader["id"]; string nombre = (string)reader["nombre"]; string marca = (string)reader["marca"]; int stock = (int)reader["stock"]; float precio = (float)((double)reader["precio"]); Producto producto = new Producto(id, nombre, marca, precio, stock); productos.Add(producto); } return(productos); } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// descuenta el stock de un producto /// </summary> /// <param name="producto">producto a manipular</param> /// <param name="cantidad">cantidad a descontar</param> public static void DescontarDeStock(Producto producto, int cantidad) { try { if (producto.Stock >= cantidad) { string command = "UPDATE Producto SET stock = @stock WHERE id = @id"; SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); sqlCommand.Parameters.AddWithValue("id", producto.Id); sqlCommand.Parameters.AddWithValue("stock", (producto.Stock - cantidad)); ConexionDB.AbrirConexion(); sqlCommand.ExecuteNonQuery(); } else { throw new CantidadNoDisponibleExcepcion(); } } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// muestra todos los datos en forma de tabla /// </summary> /// <returns>retorna una tabla con los datos</returns> public static DataTable MostrarDatosEnTabla() { try { string command = "SELECT * FROM Producto"; ConexionDB.AbrirConexion(); SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); SqlDataReader reader = sqlCommand.ExecuteReader(); DataTable dataTable = new DataTable(); dataTable.Load(reader); return(dataTable); } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// elimina un producto de la base de datos /// </summary> /// <param name="producto">producto a eliminar</param> public static void Eliminar(Producto producto) { try { string command = "DELETE FROM Producto WHERE id=" + producto.Id; SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); ConexionDB.AbrirConexion(); sqlCommand.ExecuteNonQuery(); } catch (Exception ex) { throw new ProducInexistenteExcepcion(); } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// insterta un nuevo registro de movimiento en la BD /// </summary> /// <param name="tipoOperacion">tipo de operacion realizada(venta o alquiler)</param> /// <param name="cliente">cliente que realizo la compra</param> /// <param name="producto">producto comprado</param> /// <param name="cantidad">cantidad del producto</param> /// <param name="totalPago">total abonado</param> public static void Insertar(string tipoOperacion, Cliente cliente, Producto producto, int cantidad, float totalPago) { try { string command = "INSERT INTO Movimiento(comprador,producto,cantidad, totalPago,fecha,operacion) VALUES(@comprador,@producto,@cantidad, @totalPago,@fecha,@operacion)"; SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); sqlCommand.Parameters.AddWithValue("comprador", cliente.Dni); sqlCommand.Parameters.AddWithValue("producto", producto.Nombre); sqlCommand.Parameters.AddWithValue("cantidad", cantidad); sqlCommand.Parameters.AddWithValue("totalPago", totalPago); sqlCommand.Parameters.AddWithValue("fecha", DateTime.Today); sqlCommand.Parameters.AddWithValue("operacion", tipoOperacion); ConexionDB.AbrirConexion(); sqlCommand.ExecuteNonQuery(); } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// inserta un nuevo producto en la BD /// </summary> /// <param name="producto">producto a insertar</param> public static void Insertar(Producto producto) { try { string command = "INSERT INTO Producto(nombre,marca, precio,stock) VALUES(@nombre,@marca, @precio,@stock)"; SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); sqlCommand.Parameters.AddWithValue("nombre", producto.Nombre); sqlCommand.Parameters.AddWithValue("marca", producto.Marca); sqlCommand.Parameters.AddWithValue("precio", producto.Precio); sqlCommand.Parameters.AddWithValue("stock", producto.Stock); ConexionDB.AbrirConexion(); if (sqlCommand.ExecuteNonQuery() == 0) { throw new ProductoDuplicadoExcepcion(); } } finally { ConexionDB.CerrarConexion(); } }
/// <summary> /// agrega stock de un producto /// </summary> /// <param name="producto">producto a manipular</param> /// <param name="cantidad">cantidad a agregar</param> public static void AgregarStock(Producto producto, int cantidad) { try { string command = "UPDATE Producto SET stock = @stock WHERE id = @id"; SqlCommand sqlCommand = new SqlCommand(command, ConexionDB.SqlConnection); sqlCommand.Parameters.AddWithValue("id", producto.Id); sqlCommand.Parameters.AddWithValue("stock", (producto.Stock + cantidad)); ConexionDB.AbrirConexion(); if (sqlCommand.ExecuteNonQuery() == 0) { throw new ProducInexistenteExcepcion("No existe el producto"); } } finally { ConexionDB.CerrarConexion(); } }