Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL
- //
- // ===--===
- /*============================================================
- //
- // Clase: Producto.cs
- //
- // Original en: http://goo.gl/ZFoSzx
- //
- // Propósito: Representar las operaciones y atributos de la
- // entidad Producto del modelo.
- //
- ============================================================*/
- using System;
- namespace LaTienda.Modelo
- {
- /// <summary>
- /// Clase Producto para representar un producto a vender en la tienda.
- /// </summary>
- public class Producto
- {
- #region Campos
- /// <summary>
- /// Cantidad del producto disponible en bodega.
- /// </summary>
- private int cantidadBodega;
- /// <summary>
- /// Cantidad mínima del producto que se puede tener en bodega.
- /// </summary>
- private int cantidadMinima;
- /// <summary>
- /// Unidades del producto vendidas.
- /// </summary>
- private int cantidadVendida;
- /// <summary>
- /// IVA aplicado a este producto.
- /// </summary>
- private TipoIva iva;
- /// <summary>
- /// Nombre del producto.
- /// </summary>
- private string nombre;
- /// <summary>
- /// Tipo de producto.
- /// </summary>
- private TipoProducto tipo;
- /// <summary>
- /// Valor unitario del producto.
- /// </summary>
- private decimal valorUnitario;
- #endregion
- #region Propiedades
- /// <summary>
- /// Obtiene la cantida de producto almacenado en bodega.
- /// </summary>
- public int CantidadBodega
- {
- get
- {
- return cantidadBodega;
- }
- }
- /// <summary>
- /// Obtiene la cantidad mínima de producto que se puede tener en bodega.
- /// </summary>
- public int CantidadMinima
- {
- get
- {
- return cantidadMinima;
- }
- }
- /// <summary>
- /// Obtiene la cantidad vendida del producto.
- /// </summary>
- public int CantidadVendida
- {
- get
- {
- return cantidadVendida;
- }
- }
- /// <summary>
- /// Obtiene el IVA aplicado al producto.
- /// </summary>
- public TipoIva Iva
- {
- get
- {
- return iva;
- }
- }
- /// <summary>
- /// Obtiene el nombre del producto.
- /// </summary>
- public string Nombre
- {
- get
- {
- return nombre;
- }
- }
- /// <summary>
- /// Obtiene el tipo del producto.
- /// </summary>
- public TipoProducto Tipo
- {
- get
- {
- return tipo;
- }
- }
- /// <summary>
- /// Obtiene el valor unitario del producto.
- /// </summary>
- public decimal ValorUnitario
- {
- get
- {
- return valorUnitario;
- }
- }
- #endregion
- #region Constructores
- /// <summary>
- /// Crea un nuevo producto.
- /// </summary>
- /// <param name="tipo">Tipo del producto.</param>
- /// <param name="iva">IVA aplicado al producto.</param>
- /// <param name="nombre">Nombre del producto.</param>
- /// <param name="valorUnitario">Valor unitario del producto.</param>
- /// <param name="cantidadBodega">Cantidad disponible en bodega del producto.</param>
- /// <param name="cantidadMinima">Cantidad mínima que se puede tener en bodega del producto.</param>
- public Producto(TipoProducto tipo, TipoIva iva, string nombre, decimal valorUnitario, int cantidadBodega, int cantidadMinima)
- {
- this.tipo = tipo;
- this.iva = iva;
- this.nombre = nombre;
- this.valorUnitario = valorUnitario;
- this.cantidadBodega = cantidadBodega;
- this.cantidadMinima = cantidadMinima;
- this.cantidadVendida = 0;
- }
- #endregion
- #region Métodos
- /// <summary>
- /// Calcula el precio final teniendo en cuenta su precio unitario
- /// y el IVA aplicado al producto.
- /// </summary>
- /// <returns>Valor final del producto.</returns>
- public decimal CalcularPrecionalFinal()
- {
- return valorUnitario * (1 + (decimal)((int)iva/100.0M));
- }
- /// <summary>
- /// Determina si es necesario realizar un pedido.
- /// </summary>
- /// <returns>true si es necesario realizar un pedido; en caso contario, false.</returns>
- public bool EsNecesarioHacerPedido()
- {
- return cantidadBodega < cantidadMinima;
- }
- /// <summary>
- /// Realiza un pedido de producto.
- /// </summary>
- /// <param name="cantidad">Cantidad a pedir.</param>
- public void HacerPedido(int cantidad)
- {
- cantidadBodega += cantidad;
- }
- /// <summary>
- /// Vende una cantidad del producto.
- /// </summary>
- /// <param name="cantidad">Cantidad del producto a vender.</param>
- /// <returns>La cantidad que se ha podido vender del producto.</returns>
- public int Vender(int cantidad)
- {
- if (cantidad > cantidadBodega)
- {
- cantidad = cantidadBodega;
- }
- cantidadVendida += cantidad;
- cantidadBodega -= cantidad;
- return cantidad;
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement