/// <summary> /// Constructor, instancia los campos de tipo lista. /// Asocia el evento de cambios en la tabla de productos para actualizar la lista. /// </summary> private PetShop() { this.productos = ProductosDAO.SelectAll(); ProductosDAO.CambiosAProductos += ActualizarListaProductos; this.ventas = new List <Venta>(); this.compras = new List <Compra>(); }
/// <summary> /// Agrega un nuevo alimento a la lista, tanto en ejecucion como en la base de datos. /// </summary> /// <param name="nuevoAlimento"></param> /// <returns>retorna un string que informa su la carga se realizó correctamente o no</returns> public static string AgregarNuevoAlimento(Alimento nuevoAlimento) { if (nuevoAlimento + listaAlimentos) { ProductosDAO.AgregarAlimentoDB(nuevoAlimento); return("Producto agregado correctamente"); } return("Error en la carga"); }
/// <summary> /// Agrega una nueva Indumentaria a la lista, tanto en ejecucion como en la base de datos. /// </summary> /// <param name="nuevaPrenda"></param> /// <returns>retorna un string que informa su la carga se realizó correctamente o no</returns> public static string AgregarNuevaIndumentaria(Indumentaria nuevaPrenda) { if (nuevaPrenda + listaIndumentaria) { ProductosDAO.AgregarIndumentariaDB(nuevaPrenda); return("Producto agregado correctamente"); } return("Error en la carga"); }
/// <summary> /// elimina un producto de los productos de la base de datos y actualiza la lista interna /// </summary> /// <param name="productos">productos a evaluar</param> /// <param name="p">producto a quitar</param> /// <returns>devuelve productos sin el producto eliminado</returns> public static Productos operator -(Productos productos, Producto p) { if (ProductosDAO.BuscarProductos(p) && productos == p) { ProductosDAO.Eliminar(p); productos.CargarDesdeBd(); } return(productos); }
/// <summary> /// Carga la lista de empleados desde un archivo Xml, también ejecuta los métodos encargados de obtener las listas de alimentos e Indumentaria de la base de datos. /// </summary> public static void CargarDatos() { List <Empleado> auxList = new List <Empleado>(); string rutaArchivo = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "Empleados.xml"); Xml <List <Empleado> > archivoXml = new Xml <List <Empleado> >(); archivoXml.Leer(rutaArchivo, out auxList); listaEmpleados = auxList; listaAlimentos = ProductosDAO.ObtenerListaAlimentos(); listaIndumentaria = ProductosDAO.ObtenerListaIndumentaria(); }
/// <summary> /// descuenta la cantidad pasada por parametros del stock del producto /// </summary> /// <param name="producto">producto a descontarle stock</param> /// <param name="cantidad">cantidad a descontar</param> public void SalidaStock(Producto producto, int cantidad) { try { ProductosDAO.DescontarDeStock(producto, cantidad); } catch (CantidadNoDisponibleExcepcion ex) { Console.WriteLine(ex.Message); } }
/// <summary> /// elimina un producto de los productos de la base de datos y actualiza la lista interna /// </summary> /// <param name="productos">productos a evaluar</param> /// <param name="p">producto a quitar</param> /// <returns>devuelve true si lo pudo eliminar, false si no existe</returns> public static bool operator -(Productos productos, Producto p) { try { ProductosDAO.Eliminar(p); productos.CargarDesdeBd(); return(true); } catch (ProducInexistenteExcepcion ex) { return(false); } }
/// <summary> /// publica los datos de los productos /// </summary> /// <returns>devuelve un string con los datos de los productos</returns> public string Mostrar() { StringBuilder sb = new StringBuilder(); List <Producto> aux = new List <Producto>(); aux = ProductosDAO.RecuperarDatos(); sb.AppendLine("ID NOMBRE MARCA PRECIO STOCK"); foreach (Producto p in aux) { sb.AppendLine(p.MostrarProducto(true)); } return(sb.ToString()); }
/// <summary> /// descuenta la cantidad pasada por parametros del stock del producto /// </summary> /// <param name="producto">producto a descontarle stock</param> /// <param name="cantidad">cantidad a descontar</param> public bool SalidaStock(Producto producto, int cantidad) { try { ProductosDAO.DescontarDeStock(producto, cantidad); this.CargarDesdeBd(); } catch (CantidadNoDisponibleExcepcion ex) { throw new CantidadNoDisponibleExcepcion(); } return(true); }
/// <summary> /// guarda un producto en la base de datos /// </summary> /// <param name="datos">producto a guardar</param> /// <returns></returns> public bool GuardarEnBd(Producto datos) { if (!ProductosDAO.BuscarProductos(datos)) { ProductosDAO.Insertar(datos); CargarDesdeBd(); return(true); } else { //throw new ProductoDuplicadoExcepcion(); } return(false); }
/// <summary> /// Actualiza el stock de los productos luego de realizar una compra, tanto en la ejecucion del programa como en la base de datos. /// </summary> public static void ActualizarStock() { foreach (ArticuloCompra <Producto> item in CompraEnCurso.Productos) { if (listaAlimentos.Exists(x => x.Id.Equals(item.IdProducto))) { Alimento alimentoAux = listaAlimentos.Find(x => x.Id.Equals(item.IdProducto)); alimentoAux.Stock -= item.Cantidad; ProductosDAO.ActualizarStockAlimentoDB(alimentoAux); } else if (listaIndumentaria.Exists(x => x.Id.Equals(item.IdProducto))) { Indumentaria prendaAux = listaIndumentaria.Find(x => x.Id.Equals(item.IdProducto)); prendaAux.Stock -= item.Cantidad; ProductosDAO.ActualizarStockIndumentariaDB(prendaAux); } } }
/// <summary> /// agrega un producto a la lista si el mismo no se encuentra /// </summary> /// <param name="productos">lista de productos</param> /// <param name="p">producto a agregar</param> /// <returns>devuelve el objeto productos</returns> public static Productos operator +(Productos productos, Producto p) { try { if (productos == p) { ProductosDAO.Modificar(p); } else { productos.GuardarEnBd(p); } productos.CargarDesdeBd(); } catch (ErrorEnBDExcepcion ex) { } return(productos); }
/// <summary> /// BASE DE DATOS. actualiza la lista de productos en la base de datos. /// </summary> /// <param name="comando"></param> private void ActualizarListaProductos(ComandoBaseDeDatos comando) { this.Productos = ProductosDAO.SelectAll(); }
/// <summary> /// aumenta el stock de un producto /// </summary> /// <param name="producto">producto a modificar</param> /// <param name="cantidad">cantidad a agregar</param> public void IngresoStock(Producto producto, int cantidad) { ProductosDAO.AgregarStock(producto, cantidad); this.CargarDesdeBd(); }
/// <summary> /// busca un producto en BD por id y lo devuelve /// </summary> /// <param name="num">id del producto a buscar</param> /// <returns>devuelve el producto buscado</returns> public Producto BuscarEnBd(int num) { Producto aux = ProductosDAO.ListarProductosPorId(num); return(aux); }
/// <summary> /// carga la lista de productos desde la base de datos /// </summary> public void CargarDesdeBd() { this.listaProductos = ProductosDAO.RecuperarDatos(); }
/// <summary> /// aumenta el stock de un producto /// </summary> /// <param name="producto">producto a modificar</param> /// <param name="cantidad">cantidad a agregar</param> public void IngresoStock(Producto producto, int cantidad) { ProductosDAO.AgregarStock(producto, cantidad); }